[JAVASE]笔记13

反射:

反射是发生在程序运行期间的行为—>是java的一个动静态机制
Properties pro=new Properties(); pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(“db.properties”));
Person p=(Person) Class.forName(pro.getProperty(“name”)).newInstance();

1、创建对象的时候,拿到的都是当前类型Class对象的一个镜像|赋值体
2、在类加载的时候,会在内存中存在当前类型的一个class对象,一个类的class对象储存这个类的所有信息(属性、方法、构造器。。。)
3、只要我们能够获取这个类型的Class对象,就可以对这个类做一切操作

Class类的实例表示正在运行的Java应用程序的类和接口

获取源头(Class对象):
1、对象.getClass()
2、类名.class
3、Class.forName(“类的权限命名:包名+类名”)

常用方法:
1、getName() 包名+类名
2、Class<?>[] getInterfaces()
3、String getSimpleName()
4、boolean isInterface() isPrimitive()

1、通过反射创建对象
1)、通过反射获取类中的构造器
2)、根据构造器创建对象
构造器Constructor对象.newInstance(实参)方法
2、直接通过class类的newInstance()方法创建对象,方法没有参数 调用空构造器

Constructor<T> getConstructor(Class<?>... parameterTypes)
		返回一个Constructor对象,它反映此class对象所表示的类的指定**公共**构造方法
Constructor<?>[] getConstructors()
		返回一个包含某些Constructor对象的数组,这些对象反映此Class对象所表示的类的所有公共构造方法


Constructor<T> getDeclaredConstructor(Class<?>... paramenterTypes)
		返回一个Constructor对象,该对象反映此Class对象所表示的类或接口的指定的所有类型的构造方法。 
Constructor<?>[] getDeclaredConstructors() 
		返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值