`
wanxiaotao12
  • 浏览: 477297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 反射机制浅析

 
阅读更多

http://www.cnblogs.com/gulvzhe/archive/2012/01/27/2330001.html

 

反射的三步:

 1、获得你想操作类的Class对象


 2、通过第一步获得的Class对象去取得操作类的方法或是属性名


 3、操作第二步取得的方法或是属性, 执行指定对象的方法(如果方法是静态方法,则不需要指定对象),取得属性值或为属性赋值

 

注意问题:

1、Method method = cla.getMethod("addUser", String.class);   //getMethod方法中的参数,第一个参数是方法名, 后面的参数个数是可变的, 是指addUser方法中参数的类型

 

2、method.invoke(user, "张三"); //invoke方法中的第一个参数是指定的对象, 如果method是静态方法, 则第一个参数为null, 第二个参数是执行此方法需要传递的参数

 

3、在给对象中的成员变量赋值时, 如果该成员变量是private 时, 则会报Class  can not access a member of class User with modifiers "private"

出现这样的问题, 是因为是成员变量是私有的,

解决方法:

field.setAccessible(true); //则指示反射的对象在使用时应该取消 Java 语言访问检查

 

4、在获得类的方法、属性、构造函数时,会有getXXX和getgetDeclaredXXX两种对应的方法。之间的区别在于前者返回的是访问权限为public的方法和属性,包括父类中的;但后者返回的是所有访问权限的方法和属性,不包括父类的。

 

5、获取类中的getter, setter方法

BeanInfo beanInfo = Introspector.getBeanInfo(clazz);
PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
System.out.println("--------------");
for(int i=0;i<propertyDescriptors.length;i++){
    System.out.println(propertyDescriptors[i].getWriteMethod());
    System.out.println(propertyDescriptors[i].getReadMethod());

}

 

 

分享到:
评论

相关推荐

    浅析Java 反射机制的用途和缺点

    "浅析Java 反射机制的用途和缺点" Java 反射机制是一种强大的技术,可以让应用程序做一些几乎不可能做到的事情。它可以让程序在运行时检测或修改程序行为,是 Java 语言中一个相对高级的特性。开发者可以使用反射...

    深入浅析Java反射机制

    Java反射机制是Java编程语言中一个强大的工具,它允许程序在运行时动态地获取类的信息并操作类的对象。反射机制的核心在于,它打破了程序编译时的静态性,提供了对类、接口、字段和方法的动态访问能力。通过反射,...

    Java反射机制(Reflection)浅析

    Java反射机制(Reflection)是Java语言提供的一种强大的能力,它允许程序在运行时动态地获取类的信息并操作类的对象。这种机制使得Java具备了高度的灵活性和动态性,尤其是在处理未知类或者需要根据条件动态调用类的...

    Android框架浅析之锁屏(Keyguard)机制原理

    ### Android框架浅析之锁屏(Keyguard)机制原理 #### 一、锁屏界面的组成 锁屏(Keyguard)是Android系统中的一个重要组成部分,它主要用于保护用户的隐私数据不被未授权访问。锁屏功能主要由两个部分组成:解锁...

    Java基础知识点 - 内容比较全面

    7. **Java中的反射机制**:反射允许程序在运行时检查类、接口、字段和方法的信息,动态创建对象并调用方法。它是Java动态性的重要体现,广泛应用于插件系统、框架和测试工具。 8. **Java中Heap与Stack的区别**:堆...

    Java动态代理简单应用

    概念  代理模式是基本的设计模式之一,它是开发者为了提供额外的或...  Java动态代理实现机制采用了反射的思想,有关于反射的基础知识,可以参见博客Java发射机制浅析。  原理  Spring核心AOP实现技术之一是采用

    深入浅析Java注解框架

    注解的本质是与程序代码关联的特殊标记,它们在编译时或运行时通过反射机制被解析和处理。 1. **元注解** 元注解是用于修饰其他注解的注解,Java内置了四种基本的元注解: - **@Target**:定义注解能被应用到...

    浅析java中 Spring MVC 拦截器作用及其实现

    1. **依赖关系**:拦截器是基于Spring框架,依赖于反射机制,仅能处理请求;而过滤器基于Servlet规范,通过回调函数实现,过滤范围更广,可以处理请求和响应。 2. **控制流程**:拦截器可以决定是否继续处理请求,...

    JFinal技术架构浅析.doc

    JFinal 是一个基于Java语言的轻量级Web开发框架,其设计目标是简化开发、提高效率,让开发者能够更专注于业务逻辑的实现。本篇文档将对JFinal的技术架构进行浅析,帮助读者理解其核心设计理念和工作原理。 1. **...

    浅析使用JDBC操作MySQL需要添加Class.forName("com.mysql.jdbc.Driver")

    首先,我们了解Java的类加载机制。在Java程序运行时,如果要使用某个类,该类必须先被加载到JVM(Java Virtual Machine)中。加载过程包括将类的二进制字节流转化为内存中的数据结构,并创建一个`java.lang.Class`...

Global site tag (gtag.js) - Google Analytics