javase,反射

获取class的三种方法:

1. Class(数据类型) a=Class.forname("写入一个完整类名");

2. 写一个类的对象,然后调用对象的getClass方法。

String a=new String("hdhdhhdh");

Class x=a.getClass;

3. 直接用类本身的Class方法。

比如:String.Class;

如果想要某一个类中的静态代码块中的方法执行,那么可以用一个Class.forName();

因为静态代码块是在类加载时执行的,forName可以加载类。

获取类路径的绝对路径;

这行代码返回一个绝对路径,是一个字符串,可以写在io流的字符串位置。行程一个流后,用集合加载。

这行代码要求,文件必须在类路径下。

字符串里填的是文件相对路径。

这行代码返回一个绝对路径,是一个字符串,可以写在io流的字符串位置。行程一个流后,用集合加载。

这行代码要求,文件必须在类路径下。

字符串里填的是文件相对路径。

这几行代码展示了用将绝对路径变成一个流,然后加载到Properties这个集合中。然后用这个对象的,load方法加载这个流然后用这个集合的key取另一个值。

资源绑定器方式:

要求用法如图。文件必须是properties文件,后缀名也必须是这个。

然后用如图上的类然后用类.getBundle("这里写文件名的相对路径,文件不需要写后缀")

双亲委派机制,类加载器会先加载

启动类加载器

扩展类加载器

应用类加载器

这个顺序来加载,每当前一个无法加载就会启用下一个。

通过反射机制访问类的属性。

访问私有属性要先用这个方法。

首先用反射得到这个类,然后用newIntance方法得到对象。然后用Field得到一个属性对象,方法为,目标类的getDeclaredField(得到公共的属性)方法。写入属性名字得到属性对象。对象.set(目标类的对象,数据)

通过反射机制访问类方法的方法:

首先要得到反射的类。

然后得到这个类的对象。

然后用getDeclaredMethod这个方法得到类的方法。(得到公共的方法)然后用invoke方法写入对象和数据。最后一行的代码意思为,调用obj的loginMethod方法传入后面两个字符串数据得到一个object返回值。

通过放射得到构造方法:

首先得到反射的类。

然后得到反射的类的对象。

然后用getDeclaredConstructor(得到公开的构造方法)。

然后用对象.newInstance(这个方法底层就是无参构造方法)传入数据,完成。

通过反射得到父类,父接口:

首先得到反射的类。

然后用这个反射的类中的一个方法getSuperclass(翻译得到父类)

因为继承是单继承,但是接口可以多个实现所以接口不一定是一个。用的方法getInterfaces这个方法返回一个接口类数组

通过反射得到注解

先得到发射的类,再得到类的方法,然后得到方法的注解,然后用注解可以得到注解属性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏与ta

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值