反射技术

二、反射技术
很重要的技术,现代的java应用编程都是基于各种框架来实现的,框架就是半成品软件,因为框架都符合某种设计标准,基于框架所搭建的应用程序就是符合标准的应用程序。
几乎所有的框架底层都使用了反射技术,框架的功能实现大多都是依靠配置文件来指定的,配置文件中规定了要使用哪些类,这些类都是通过类名来指定而不是在程序中写死的,通过类名来加载类是反射的基础。
1、什么是反射
是java类的一种自省机制,可以通过类的字节码对象(Class的对象),得到类的所有成员所对应的对象,然后再通过这些对象来使用类。

2、反射技术中常用的类的成员所对象的类型
在java.lang.reflect 中包含
Method 类,表示类中的方法
Field类,表示 类中的属性
Constructor类,表示类的构造方法.
3、如何通过类名来加载类

 //通过Messge类的类名来加载该类
Class<?> clazz = Class.forName("com.wang.Message");

Method getSenderMethod = clazz.getDeclaredMethod("getSender",null);
Method setSenderMethod = clazz.getDeclaredMethod("setSender", String.class);

// 通过字节码对象来创建对象
Message message = (Message) clazz.newInstance();
setSenderMethod.invoke(message, "abcdef");
System.out.println(getSenderMethod.invoke(message,null));
//对属性的操作
Field nameField = clazz.getDeclaredField("name");
System.out.println(nameField.get(message));
//使用构造方法
Constructor<?> cons = clazz.getDeclaredConstructor(String.class, String.class);

Message message1 = (Message) cons.newInstance("武松", "打死你");
System.out.println(message1);



   
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值