今天调用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是判断反射修饰符的工具类,还有许多其他的静态判断方式: