今天調用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是判斷反射修飾符的工具類,還有許多其他的靜態判斷方式: