У меня есть следующий фрагмент кода
@UIUnitTimeout(8*60*1000) // works
@UIUnitTimeout(TimeUnit.MINUTES.toMillis(8)) // does not work
Я знаю, что в соответствии с JLS в качестве значений атрибутов аннотации допускаются только постоянные выражения. Но почему? Почему этого недостаточно, если типы данных совпадают? Есть ли что-то, что может пойти не так, если выражения должны быть оценены во время выполнения? Есть ли у каждой спецификации логические соображения?