Подтвердить что ты не робот

Каков наилучший способ проверить, является ли поле окончательным в java, используя отражение?

Я пишу класс, который в какой-то момент должен иметь все свои поля, назначенные из другого элемента этого класса.

Я сделал это через отражение:

for(Field f:pg.getClass().getDeclaredFields()){
    f.set(this, f.get(pg));
}

Проблема заключается в том, что этот класс содержит поле, которое является окончательным. Я мог пропустить его по имени, но для меня это кажется совсем не изящным.

Какой лучший способ проверить, является ли поле окончательным в java, используя отражение?

4b9b3361

Ответ 2

Вы можете использовать метод getModifiers() для переменной Field:

if((f.getModifiers() & java.lang.reflect.Modifier.FINAL) == java.lang.reflect.Modifier.FINAL)
{
    //this is final field
}