在java中使用reflection来检查字段是否最终的最佳方法是什么?

我在写一个类,在某些时候,它必须从这个类的其他项目中分配所有的字段。

我通过反思做了:

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

问题是,这个类包含一个字段,这是最终的。 我可以跳过它的名字,但对我来说,似乎并不高雅。

在java中使用reflection来检查字段是否是最终的最好方法是什么?

最好的和唯一的方法是: Modifier.isFinal(f.getModifiers())

参考:

  • Field.getModifiers
  • Modifier.isFinal

您可以在Fieldvariables上使用getModifiers()方法:

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