开发者

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.getModifiers
  • Modifier.isFinal


You can use getModifiers() method on the Field variable:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜