繁体   English   中英

使用反射检查java中的字段是否为final

[英]Check if a field is final in java using reflection

我正在写一个类,它在某些时候必须从该类的另一个项目中分配所有的Field

我通过反思做到了:

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

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

使用反射检查一个Field是否是final的最佳方法是什么?

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

参考:

您可以在Field变量上使用getModifiers()方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM