您的位置 首页 java

「大头java」搞懂java的反射机制

什么是反射?

java的 反射机制 是指可以在运行状态下获取类和对象的所有属性和方法。

反射的作用?

1、在运行时获取一个类/对象的成员变量和方法

2、在运行时创建一个类的对象

3、在运行时判断一个对象是否属于一个类

反射有哪些具体的应用场景?

1、 JDBC 连接数据库时,使用Class.forName()通过反射加载数据库的驱动。

2、Spring的IOC (控制反转) 使用的就是工厂模式+反射的原理,需要使用到的类事先在配置文件中先声明,需要时根据配置的类名动态生成对象。

反射的缺点?

反射代码的执行速度慢,性能差,如果有其他方案可以替代,建议不使用。

如何获取类对象?

1、Class.forName(“xxx”)

 try {
  clazz = Class.forName("com.reflection.User");
} catch (ClassNotFoundException e) {
  e.printStackTrace();
}  

2、通过对象的getClass()方法

 Class clazz = user.getClass();  

3、直接通过类名获取类对象

 Class clazz = User.class;  

如何通过反射创建对象?

1、调用无参构造器

 try {
  clazz = Class.forName("com.reflection.User");
} catch (ClassNotFoundException e) {
  e.printStackTrace();
}
Object obj = clazz.newInstance();    

2、调用有参 构造器

 try {
  clazz = Class.forName("com.reflection.User");
} catch (ClassNotFoundException e) {
  e.printStackTrace();
}
Constroctor constroctor = clazz.get Constructor (String.class, Integer .class);
Object obj = constroctor.newInstance("龙哥", 29);  

文章来源:智云一二三科技

文章标题:「大头java」搞懂java的反射机制

文章地址:https://www.zhihuclub.com/195837.shtml

关于作者: 智云科技

热门文章

网站地图