Ответ 1
Лучший и единственный способ: Modifier.isFinal(f.getModifiers())
Ссылка:
Я пишу класс, который в какой-то момент должен иметь все свои поля, назначенные из другого элемента этого класса.
Я сделал это через отражение:
for(Field f:pg.getClass().getDeclaredFields()){
f.set(this, f.get(pg));
}
Проблема заключается в том, что этот класс содержит поле, которое является окончательным. Я мог пропустить его по имени, но для меня это кажется совсем не изящным.
Какой лучший способ проверить, является ли поле окончательным в java, используя отражение?
Лучший и единственный способ: Modifier.isFinal(f.getModifiers())
Ссылка:
Вы можете использовать метод getModifiers()
для переменной Field
:
if((f.getModifiers() & java.lang.reflect.Modifier.FINAL) == java.lang.reflect.Modifier.FINAL)
{
//this is final field
}