2010-06-11 44 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; 
} 

这样,如果你需要改变它,而不是担心你会去的方法,并从那里到恒定值:)。