java實現(xiàn)非法訪問異常示例
思路分析:
首先使用Class獲得一個代表String類的類對象,然后使用Class類的getDeclaredFields()方法獲得所有成員變量,并賦值給一個Field型數(shù)組,即得到String類的所有域。
使用foreach()循環(huán)遍歷所有域,使用Field類的getName()方法獲得該成員變量的名稱,如果域的名字是hash,嘗試使用Field類的getInt(Object obj)方法獲得指定對象中類型為int的該成員變量的值。
依次捕獲IllegalArgumentException異常和IllegalAccessException異常。
代碼如下:
import java.lang.reflect.Field;
public class ExceptionTest {
public static void main(String[] args) {
Class<?> clazz = String.class; //獲得代表String類的類對象
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) { //遍歷所有域
System.out.println(field);
if (field.getName().equals("hash")) { //如果域的名字是hash
try {
System.out.println(field.getInt("hash")); // 輸出hash的值
} catch (IllegalArgumentException e) { //捕獲IllegalArgumentException異常
System.out.println(e);
} catch (IllegalAccessException e) { //捕獲IllegalAccessException異常
System.out.println(e);
}
}
}
}
}

相關(guān)文章
SpringBoot打包發(fā)布到linux上(centos 7)的步驟
這篇文章主要介紹了SpringBoot打包發(fā)布到linux上(centos 7)的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-12-12spring boot微服務(wù)自定義starter原理詳解
這篇文章主要介紹了spring boot微服務(wù)自定義starter原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12Java基于socket服務(wù)實現(xiàn)UDP協(xié)議的方法
這篇文章主要介紹了Java基于socket服務(wù)實現(xiàn)UDP協(xié)議的方法,通過兩個簡單實例分析了java通過socket實現(xiàn)UDP發(fā)送與接收的技巧,需要的朋友可以參考下2015-05-05關(guān)于@Transactional事務(wù)表被鎖的問題及解決
這篇文章主要介紹了關(guān)于@Transactional事務(wù)表被鎖的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01SpringBoot整合Log4j2實現(xiàn)自定義日志打印失效的原因及解決
本文給大家介紹了關(guān)于SpringBoot項目整合Log4j2實現(xiàn)自定義日志打印失效原因及解決辦法,主要的原因是因為SpringBoot的logback包的存在,文中通過圖文給大家了詳細(xì)解決方法,需要的朋友可以參考下2024-01-01