Просто измените его на int
, и все должно быть в порядке:
public static final int myXYZ = 1;
Это потому, что значение регистра должно быть константным выражением или именем перечисления. Из раздела 15.28 JLS (константные выражения):
Константное выражение времени компиляции - это выражение, обозначающее значение типа примитива или String, которое не завершается внезапно и составлено с использованием только следующего [...]
Следовательно, выражение типа int
может быть константным выражением, но выражение типа Integer
не может.
Если это набор значений, который сам по себе имеет смысл как концепция, тогда enum мог бы иметь больше смысла.