播放框架2.1-在播放控制器中使用java.util.properties时出现语法错误

播放框架2.1-在播放控制器中使用java.util.properties时出现语法错误,java,playframework,playframework-2.1,Java,Playframework,Playframework 2.1,我在尝试在播放控制器中使用java. UTIL属性类时遇到了一种奇怪的冲突,考虑如下: package controllers; import play.mvc.*; import java.util.*; public class Simple extends Controller { Properties prop = new Properties(); prop.setProperty("database", "localhost"); } 在Eclipse中,se

我在尝试在播放控制器中使用java. UTIL属性类时遇到了一种奇怪的冲突,考虑如下:

package controllers;

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

public class Simple extends Controller {

   Properties prop = new Properties();

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

}
在Eclipse中,setProperty方法返回:

令牌上的语法错误,构造位置错误

令牌语法错误,请删除这些令牌

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


如果有任何帮助,我将不胜感激,我是一名有Java经验的新手。

请将以下两行放在一个方法块中:

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

public class Simple extends Controller {
    public static void pickABetterMethodName() { // Method 
       Properties prop = new Properties();
       prop.setProperty("database", "localhost");
    }
}
这将解决语法问题。原因是在类声明本身中不能有非方法或字段声明的代码。行为在方法中实现。这里是关于Java的教程,这里是关于

我认为您要做的是在控制器初始化期间执行代码。如果我没记错的话,在Play 1.x中,这可以通过一个
@OnApplicationStart
装饰器(在一个方法上)实现。我不确定Play 2.x是否仍然如此


编辑:使用Play 2.x,您可以使用。

您还可以告诉他/她为什么。;-)你说得对@alexvetter。我试图改进一下答案。:-)谢谢dschulz,我真的很感谢你的回答,也感谢alexvetter提出的理由,非常有意义,我的疏忽。我认为使用Play 2.1,您可以定义一个全局类来引导代码。dschulz-关于全局类,请告诉我,非常感谢,我已经接受了您的答案:-)