Javase 反射机制

一、反射机制概念

(1)反射机制有什么用?
        通过java语言中的反射机制可以操作字节码文件
        通过反射机制可以操作代码片段。(class文件。)

(2)反射机制的相关类在哪个包下?
        java.lang.reflect.*;

(3)反射机制相关的重要的类有哪些?
        java.lang.Class:代表整个字节码,代表一个类型,代表整个
        java.lang.reflect.Method:代表字节码中的方法字节码。代表类中的方法
        java.lang.reflect.Constructor:代表字节码中的构造方法字节码。代表类中的构造方法
        java.lang.reflect.Field:代表字节码中的属性字节码。代表类中的成员变量

二、反射机制语法

(1)在java中获取Class的三种方式

第一种:     
    Class c = Class.forName("完整类名");
第二种:
    Class c = 对象.getClass();  
第三种:
    Class c = int.class;
    Class c = String.class;

(2)获取了Class之后,可以调用无参数构造方法来实例化对象

//c代表的就是日期Date类型
Class c = Class.forName("java.util.Date");
//实例化一个Date日期类型的对象
Object obj = c.newInstance(); 

一定要注意
        newInstance()底层调用的是该类型的无参数构造方法
        如果没有这个无参数构造方法会出现"实例化"异常。
联想:如果只是想让一个类的静态代码块执行的话可以怎么做?
        可以调用Class.forName();,因为这个方法可以导致类加载。

三、关于路劲问题

1)通过相对路径找绝对路径

String path = Thread.currentThread().getContextClassLoader()
					.getResource("相对路径").getPath();	

这种方式是为了获取一个文件的绝对路径。(通用方式,不会受到环境移植的影响。)
        但是该文件要求放在类路径下,换句话说:也就是放到src下面。
        src下是类的根路径。

直接以流的形式返回:(也是需要放到类路径中)

InputStream in = Thread.currentThread().getContextClassLoader()
								.getResourceAsStream("相对路径");

(2)IO + Properties,怎么快速绑定属性资源文件?

ResourceBundle bundle = ResourceBundle.getBundle("相对路径文件"); 
String value = bundle.getString(key);

要求:这个文件必须在类路径下
          这个文件必须是以.properties结尾。
          不可以使用文件后缀

四、反射机制需要掌握什么?

1、通过反射机制访问对象的某个属性。
2、通过反射机制调用对象的某个方法。
3、通过反射机制调用某个构造方法实例化对象。
4、通过反射机制获取父类以及父类型接口。

自用小总结、方便复习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值