在java中使用reflection来检查字段是否最终的最佳方法是什么?
我在写一个类,在某些时候,它必须从这个类的其他项目中分配所有的字段。
我通过反思做了:
for(Field f:pg.getClass().getDeclaredFields()){ f.set(this, f.get(pg)); }
问题是,这个类包含一个字段,这是最终的。 我可以跳过它的名字,但对我来说,似乎并不高雅。
在java中使用reflection来检查字段是否是最终的最好方法是什么?
最好的和唯一的方法是: Modifier.isFinal(f.getModifiers())
参考:
-
Field.getModifiers
-
Modifier.isFinal
您可以在Field
variables上使用getModifiers()
方法:
if((f.getModifiers() & java.lang.reflect.Modifier.FINAL) == java.lang.reflect.Modifier.FINAL) { //this is final field }