A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mls123456 中级黑马   /  2015-7-5 01:59  /  919 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 反射定义:在运行状态下,JVM会获取该类的字节码文件对象,调用该类的
* 一切方法,属性;使用Class类中的方法进行解剖,所以需要先获取每个字
* 节码文件对应Class的对象.
* java.lang.Class 描述字节码文件的类,class的方法可以获取字节码文
* 件的对象,对象的方法和属性.
*   类中的成员也是对象
   构造方法对象,成员变量对象,成员方法对象

    构造方法对象的描述类 java.lang.reflect.Constructor
    此类提供方法,运行解剖后的类的构造方法

   成员变量对象的描述类  java.lang.refelct.Field
   此类提供方法,直接运行或者修改解剖后类的成员变量

  成员方法对象的描述类  java.lang.refelct.Method
  此类提供方法,直接运行解剖后类的方法
  成员变量对象的描述类  java.lang.refelct.Field
   此类提供方法,直接运行或者修改解剖后类的成员变量

  成员方法对象的描述类  java.lang.refelct.Method
  此类提供方法,直接运行解剖后类的方法


Class类中的方法,获取一个字节码文件对象中的构造器
Constructor[] getConstructors() 获取字节码文件中的构造方法,所有公共权限
   返回值是描述构造方法对象的类  Constructor 存储的是数组

Constructor getConstructor(Class... p)获取指定构造方法,一个,根据构造方法的参数列表定
Constructor类有一个方法,可以运行获取到的构造器
Object newInstance(Object...o)


package cn.itcast.reflect;
/*
* 反射Person类,获取构造方法,并运行
*/
import java.lang.reflect.*;
public class ReflectDemo1 {
        public static void main(String[] args)throws Exception {
                Class clazz = Class.forName("cn.itcast.reflect.Person");
       
                //获取指定,空参数的构造方法,运行
                Constructor con = clazz.getConstructor();
                System.out.println(con);
                //运行获取到的构造方法 Constructor类的方法 newInstance
                Object obj = con.newInstance();
                System.out.println(obj);

        }
}



评分

参与人数 1黑马币 +6 收起 理由
2297618472 + 6

查看全部评分

1 个回复

倒序浏览
不错嘛,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马