java实现非法访问异常示例

时间:2021-05-19

思路分析:

首先使用Class获得一个代表String类的类对象,然后使用Class类的getDeclaredFields()方法获得所有成员变量,并赋值给一个Field型数组,即得到String类的所有域。
使用foreach()循环遍历所有域,使用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);
}
}
}
}
}


声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章