何为反射(1)

1. 
  1. 何为反射:反射就是把java中的各个成分映射成相应的java类。
  1. Method代表方法的类型,而各个方法则是它的一个实例。
  2. 2.关于Constructor,通过类的字节码的getConstructor(param)方法,来得到构造方法的对象,那么构造方法那么多,我们到底要哪个呢?这就需要param这个参数来决定了。比如我需要得到String类的String(StringBuffer buffer) 这个 构造方法,那么需传入StringBuffer.class
  3. 我们要new 一个String 类的对象,并且调用含义StringBuffer的构造器。用反射机制怎么样实现呢?这里说得有点绕,比如说我不用反射的情况下做这样一件事 new String(new StringBuffer("sb"));现在我要使用反射机制做一件相同的事情,该怎么实现?
①    既然要new 这个String 那么我们肯定要知道我们需要什么样的构造方法,所以先来获得构造方法,而这个构造方法的参数类型恰恰就是StringBuffer类型对象 Class.forName("java.lang.String").getConstructor(Class.forName("java.lang.StringBuffer")),它返回的就是Constructor类型的对象。
②    

用这个构造方法去获得实例对象 ,下面newStringBuffer() 表示使用这个StringBuffer是传一个参数进去Class.forName("java.lang.String").getConstructor(Class.forName("java.lang.StringBuffer")).newInstance(new StringBuffer("sb"));

③   ②中返回是个Object类型,所以需要进行强制转换

(String)Class.forName("java.lang.String").getConstructor(Class.forName("java.lang.StringBuffer")).newInstance(newStringBuffer("sb"));



感觉第一次写这样技术博客思维不是特别的有条理,而且可能会有很多不是很合理的地方,希望大家多损几句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值