Как в 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 у поля.