java实现非法访问异常示例

 更新时间:2014年02月27日 15:47:55   作者:  
创建ExceptionTest类,在该类的main()方法中,使用反射获得String类的所有域,不要使用setAccessible方法修改这些域的可见性,然后通过反射获得私有域中与”hash”相匹配的int值,并使用try-catch语句块捕获非法访问异常

思路分析:

首先使用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);
                }
            }
        }
    }
}


相关文章

  • Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    这篇文章主要介绍了Java 详解单向加密--MD5、SHA和HMAC及简单实现实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • 关于Spring源码深度解析(AOP功能源码解析)

    关于Spring源码深度解析(AOP功能源码解析)

    这篇文章主要介绍了关于Spring源码深度解析(AOP功能源码解析),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Spring中@Validated和@Valid区别浅析

    Spring中@Validated和@Valid区别浅析

    @Valid是javax.validation里的, @Validated是@Valid 的一次封装,是Spring提供的校验机制使用,下面这篇文章主要给大家介绍了关于Spring中@Validated和@Valid区别的相关资料,需要的朋友可以参考下
    2022-04-04
  • Mybatis-Plus 全局配置无效的解决方案

    Mybatis-Plus 全局配置无效的解决方案

    这篇文章主要介绍了Mybatis-Plus 全局配置无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • springmvc的@Validated注解使用

    springmvc的@Validated注解使用

    这篇文章主要介绍了springmvc的@Validated注解使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java instanceof关键字的的进一步理解

    Java instanceof关键字的的进一步理解

    这篇文章主要介绍了Java instanceof关键字的的进一步理解,本文用一些实例讲解了instanceof操作符的一些知识,需要的朋友可以参考下
    2015-03-03
  • 详解Java线程堆栈

    详解Java线程堆栈

    本篇文章主要给大家讲了Java线程堆栈的详细原理以及用法,需要的朋友跟着学习下吧。
    2017-12-12
  • 基于Java中进制的转换函数详解

    基于Java中进制的转换函数详解

    下面小编就为大家带来一篇基于Java中进制的转换函数详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • java使用lambda表达式多条件排序方式

    java使用lambda表达式多条件排序方式

    这篇文章主要介绍了java使用lambda表达式多条件排序方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java中双重检查锁(double checked locking)的正确实现

    Java中双重检查锁(double checked locking)的正确实现

    双重检查锁(Double-Check Locking),顾名思义,通过两次检查,并基于加锁机制,实现某个功能,下面这篇文章主要给大家介绍了关于Java中双重检查锁(double checked locking)的相关资料,需要的朋友可以参考下
    2021-09-09

最新评论