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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM