黑马程序员_反射

---------------------- android培训java培训、期待与您交流! ----------------------

反射
    
 1、   Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。
Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。
换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。
 
2、获取类的class对象
 
        1)、用.class   如:String.class
        2)、用getClass()方法  如:String str1 = "asdf" ;      str1.getClass();
        3)、用Class.forName()方法   如:Class.forName("java.lang.String");
 
 
3、获取类的fields
 
       可以通过反射机制得到某个类的某个属性,然后改变对应于这个类的某个实例的该属性值。JAVA 的Class<T>类提供了几个方法获取类的属性。
        public Field getField(String name)    返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段
        public Field[] getFields()    返回一个包含某些 Field 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段
        public Field getDeclaredField(String name)    返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段
        public Field[] getDeclaredFields()    返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段 
 
 
4、获取类的Method
 
            通过反射机制得到某个类的某个方法,然后调用对应于这个类的某个实例的该方法。Class<T>类提供了几个方法获取类的方法。
        public Method getMethod(String name, Class<?>... parameterTypes)    
                返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法
        public Method[] getMethods()    
                返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法
        public Method getDeclaredMethod(String name,Class<?>... parameterTypes)
                返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法
        public Method[] getDeclaredMethods()    
                返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法
 
 
5、获取类的Constructor
 
            通过反射机制得到某个类的构造器,然后调用该构造器创建该类的一个实例 。Class<T>类提供了几个方法获取类的构造器。
        public Constructor<T> getConstructor(Class<?>... parameterTypes)    
                返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法
        public Constructor<?>[] getConstructors()    
                返回一个包含某些 Constructor 对象的数组,这些对象反映此 Class 对象所表示的类的所有公共构造方法
        public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
                返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法
        public Constructor<?>[] getDeclaredConstructors()
                返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。它们是公共、保护、默认(包)访问和私有构造方法

---------------------- android培训java培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值