这个问题已经在这里有一个答案:
- 如何从一个恒定的Java提供的价值注释 5个回答
我用注释在我的代码,我尝试使用它决定在运行时间值。
我定义我的列表作为static final
(LST),我添加到这个列表中的某些元素。
当我使用lst.get(i)
,我得到的编译错误:
The value for annotation attribute must be a constant expression
什么是这个问题的解决?
这个问题已经在这里有一个答案:
我用注释在我的代码,我尝试使用它决定在运行时间值。
我定义我的列表作为static final
(LST),我添加到这个列表中的某些元素。
当我使用lst.get(i)
,我得到的编译错误:
The value for annotation attribute must be a constant expression
什么是这个问题的解决?
一个注解的值必须是一个编译时间常数,所以做你正在尝试做的没有简单的方法。
另请参见这里: 如何从一个恒定的Java提供价值的注释
它可以使用一些编译时工具(Ant,Maven的?)来配置它,如果该值知道你尝试运行程序之前。
这是Java中的常量表达式是这样的:
package com.mycompany.mypackage;
public class MyLinks {
// constant expression
public static final String GUESTBOOK_URL = "/guestbook";
}
你可以用注解如下使用它:
import com.mycompany.mypackage.MyLinks;
@WebServlet(urlPatterns = {MyLinks.GUESTBOOK_URL})
public class GuestbookServlet extends HttpServlet {
// ...
}