反射笔记


反射:
1,Person p1=new Pweson();
Class cls1=Data.class//Data.class是这个类的字节码,这个字节码的对象的名字是cls1,这个对象的类型是Class.
p1.getClass();//这是早获得这个类的字节码。
2,Class.forName("java.lang.String");//Class.forName的作用就是返回类的字节码,返回的方式有两种(一是这个类的字节码已经存在于内存中,直接返回;另一种是用类加载器去加载,把加载进来的字节码缓存在虚拟机中,然后返回。)
3,如何得到各个字节码对应的实例对象(Class类型)
   类名.class,如:System.class
   对象.getClass(),例如:new Data().getClass();
   Class.forName("类名"),例如:Class.forName("java.util.Date")
4,八种基本类型:
  boolean  byte  char  short  int  long  float  double
5,数组类型的Class实例对象
   Class.isArray()
   总之,
注意:只要是在源程序中出现的类型,都有各自的Class实例对象,例如:int[]  void


6,什么是反射:反射就是把java类中的各种成分映射成相应的java类。
7,具体展开讲解:一个class代表一份字节码,,一个method代表这份字节码中的一个方法,,一个constructor代表这份字节码中的一个构造方法。
8,Constructor类代表某个类中的一个构造方法。
   1.得到某个类中的所有构造方法:
      例子:Constructor constructors[]=Class.forName("java.lang.String").getConstructors();
   2.得到某一个构造方法:
       例子:Constructor constructor=Class.forName("java.lang.String").getConstructor             (StringBuffer.class)
          //获得方法时要用到类型
   3.创建实例对象:
     通常方式:String str=new String(new StringBuffer("abc"));
     反射方式:String str=(String)constructor.newInstance(new StringBuffer("abc"));
     //调用获得的方法时要用到上面相同类型的实例对象。
    4.Class.newInstance()方法:
      例子:String obj=(String)Class.forName("java.lang.String").newInstance();
      该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象
9,用反射给一个类创建实例对象的过程:class 到 constructor 再到 new object


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值