我在代码中使用注释,并尝试使用在运行时确定的值.
我将我的列表定义为static final
(lst),并在此列表中添加一些元素.
当我使用时lst.get(i)
,我得到编译错误:
The value for annotation attribute must be a constant expression
Run Code Online (Sandbox Code Playgroud)
这个问题的解决方案是什么?
zw3*_*324 46
注释的值必须是编译时常量,因此没有简单的方法来执行您要执行的操作.
另请参见此处:如何从Constant java为注释提供值
如果在尝试运行程序之前知道了值,可以使用一些编译时工具(ant,maven?)来配置它.
Ben*_*uer 17
这就是Java中的常量表达式:
package com.mycompany.mypackage;
public class MyLinks {
// constant expression
public static final String GUESTBOOK_URL = "/guestbook";
}
Run Code Online (Sandbox Code Playgroud)
您可以将其与注释一起使用,如下所示:
import com.mycompany.mypackage.MyLinks;
@WebServlet(urlPatterns = {MyLinks.GUESTBOOK_URL})
public class GuestbookServlet extends HttpServlet {
// ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
108149 次 |
最近记录: |