У меня есть очень длинная константа String
, которая используется для аннотации, и эта строка по существу представляет собой список, разделенный запятыми. Я хотел бы иметь возможность сделать следующее:
String str = String.join(", ", "abc", "def", "ghi", "jkl");
@Annotation(str)
public void foo();
Но я получаю ошибку element value must be a constant expression
. Я понимаю, что выражение не вписывается в определение константного выражения в Java, однако есть ли способ утверждать компилятору, что str
является константой? Код намного легче читать и поддерживать, если я могу написать его вышеописанным способом (фактический список намного длиннее в моем реальном коде).