2013-03-12 87 views
-1

我有一个奇怪的某种尝试使用java.util.Properties类的游戏控制器的时候,冲突的语法错误,请考虑以下几点:播放框架2.1 - 使用java.util.properties在播放控制器

package controllers; 

import play.mvc.*; 
import java.util.*; 

public class Simple extends Controller { 

    Properties prop = new Properties(); 

    prop.setProperty("database", "localhost"); 

} 

在Eclipse setProperty方法返回:

令牌(一个或多个),错位构建体(S)上的令牌

语法错误

语法错误,删除这些令牌

我认为这个代码在控制器中存在一些冲突,同样的两行代码在一个简单的Java类中工作。

任何帮助将不胜感激,我是新的玩一些Java的经验。

回答

2

将这两行的方法块中:

import play.mvc.*; 
import java.util.*; 

public class Simple extends Controller { 
    public static void pickABetterMethodName() { // Method 
     Properties prop = new Properties(); 
     prop.setProperty("database", "localhost"); 
    } 
} 

这将解决的语法问题。原因是你不能在类声明本身拥有不是方法或字段声明的代码。行为在方法中实现。这里是关于class declaration的Java教程,这里是关于method declaration

我想你要做的是在控制器初始化期间执行代码。如果我没有记错的话,在Play 1.x中,装饰器(在方法上)可以使用@OnApplicationStart。我不确定Play 2.x仍然如此。

编辑:有了Play 2.x,你可以用Application global settings来做到这一点。

+1

你也可以告诉他/她为什么。 ;-) – alexvetter 2013-03-12 19:49:45

+0

你是对的@alexvetter。我试图改进一点答案。 :-) – dschulz 2013-03-12 20:10:38

+0

谢谢dschulz,我真的很感谢你的回答,还有alexvetter提示理由,对我来说是非常有意义的监督。我认为在Play 2.1中,你可以定义一个全局类来引导代码。 – user2162484 2013-03-12 20:15:10