java判断反射的Field是不是用final修饰

今天调用Field.set方法报错:

Caused by: java.lang.IllegalAccessException: Can not set static final long field com.zdwl.wlj.entity.BzUserPersonal.serialVersionUID to java.lang.Long
原因是用final修饰了属性,不能赋值,那如何判断呢?

找到了如下的解决方法:

要引用的包:

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
判断代码:

if (Modifier.isFinal(field.getModifiers()))
return;
Modifier是判断反射修饰符的工具类,还有许多其他的静态判断方式:

原文地址:https://www.cnblogs.com/exmyth/p/12487794.html