框架底层的类反射机制

1.反射:简单的说就是在运行时装配代码(运行时才加载),不需要在编译时进行代码代码链接。

2.使用反射时会在API中使用到的类:

Java.lang.Class

Java.lang.reflect.Constrctor

Java.lang.reflect.Method

Java.lang.reflect.Field

Java.lang.reflect.Modifier

3.作用:

(1)在Java中可以用于反编译,将.class文件反编译为.java文件,然后就可以访问Java对象中的属性和方法。

Class c = Class.forName("com.study.entity.Users");//反射读取Users实体类
Object o = c.newInstance();//调用的就是无参构造函数
//获取类中的属性名为age的属性
Field f = c.getDeclaredField("age");
//打破封装性给属性赋值
f.setAccessible(true);
f.set(o,20);//设置属性值
System.out.println(f.get(o));//获取属性值

获取类所有属性:(包括修饰符 属性类型全称 属性名)

Field[] f1 = c.getDeclaredFields();
获取类所有函数:(包括修饰符 返回值类型全称 方法名)

Method[] ms = c.getDeclaredMethods();

(2)实际开发中常用反射去加载配置文件

Hibernate框架加载配置文件:

//创建Configuration对象
Configuration cfg = new Configuration();
//加载注册文件
cfg.configure("hibernate.cfg.xml");

(3)使用反射加载属性文件

InputStream in = Object.class.getResourceAsStream("/mysql.properties");//使用反射加载属性文件并创建输入流对象
Properties p = new Properties();//创建属性列表对象
p.load(in);//从输入流读取属性列表
System.out.println(p.getProperty("username").trim());


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值