2010-06-11 93 views
1

對於我的谷歌Wave機器人常量表達式,在onDocumentChanged事件我想申請一個過濾器,如下所示:生成的函數

@Capability(filter = FILTER) 
@Override 
public void onDocumentChanged(DocumentChangedEvent event) { 
    ... 
} 

我希望生成過濾器的第一次機器人運行,我試圖做如下:

private static final String FILTER = generateFilter(); 

private static final String generateFilter(){ 
    ... 
} 

然而,它抱怨FILTER不是@Capability中使用的常量表達式。

generateFilter()每次調用時都會返回相同的字符串,我只用它來創建字符串,這樣當我進行更改時,我不必擔心更新過濾器。

現在我可能會對這一切都錯,想知道是否有人知道我做錯了什麼,或者知道一個更好的方法,我可以從函數中生成一個常量表達式。

回答

0

編譯器在編譯時需要註釋中的Contant值,並且我認爲在應用程序初始化時會發生初始化。

你也許可以做到這樣的:

private static final String FILTER = "YOUR STRING"; 

private static final String generateFilter() { 
    return FILTER; 
} 

這樣,如果你需要改變它,而不是擔心你會去的方法,並從那裏到恆定值:)。