Search code examples
javaannotations

Get rid of "The value for annotation attribute must be a constant expression" message


I use annotation in my code, and I try to use value which determine in run time.

I define my list as static final (lst), and I add to this list some elements.

When I use lst.get(i), I get compilation error:

The value for annotation attribute must be a constant expression

What is the solution for this issue?


Solution

  • The value for an annotation must be a compile time constant, so there is no simple way of doing what you are trying to do.

    See also here: How to supply value to an annotation from a Constant java

    It is possible to use some compile time tools (ant, maven?) to config it if the value is known before you try to run the program.