Check if a field is final in java using reflection
I'm开发者_如何学编程 writing a class, which at some point has to have all its Fields assigned from another item of this class.
I did it through reflection:
for (Field f:pg.getClass().getDeclaredFields()) {
f.set(this, f.get(pg));
}
The problem is, that this class contains a Field, which is final. I could skip it by name, but to me that seems not elegant at all.
What's the best way to check if a Field is final in java using reflection?
The best and only one way is: Modifier.isFinal(f.getModifiers())
Reference:
Field.getModifiersModifier.isFinal
You can use getModifiers() method on the Field variable:
if ((f.getModifiers() & Modifier.FINAL) == Modifier.FINAL)
{
//this is final field
}
加载中,请稍侯......
精彩评论