2013-03-12 118 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