Как в Java проверить, является ли поле финальным
Чтобы проверить, является ли поле финальным, нужно использовать статический метод isFinal класса java.lang.reflect.Modifier:
Modifier.isFinal(field.getModifiers());
Следующий пример выведет в консоль фразу "Field x is final.":
class A {
public static final Integer x = 1;
}
public class Study {
public static void main(String[] args) throws NoSuchFieldException {
Field field = A.class.getField("x");
if (Modifier.isFinal(field.getModifiers())) {
System.out.println("Field x is final.");
}
}
}
Также можно сделать те же операции, которые происходят внутри метода isFinal:
(field.getModifiers() & Modifier.FINAL) != 0
Это выражение также вернёт true или false в зависимости от наличия/отсутствия модификатора final у поля.