注意--此部分内容是java框架的前置知识,对于初学者比较陌生。
反射
反射:加载类,并运行以编程的方式解剖类中的各种成分(成员变量、方法、构造器)
在获取类之后,再获取类、构造器等需要@test进行运行(别忘记)
温馨提示!!!
以下4种获取方法,按照图片中的代码顺序进行编程即可。
一、获取类
二、获取构造器
获取全部构造器:
获取某个构造器:
注意:
constructor2.setAccessible(true);//禁止检查访问权限-----不论私有或公共 都可访问(暴力反射)
三、获取成员变量
四、获取方法
获取方法归根结底还是为了执行方法:
注解
注解就是Java代码中的特殊标记。如:@Test @Override等。
作用:让其它代码根据注解决定怎么运行代码
此处:我们学习自定义标记
自定义注解
P0(此处只是随意创建--自定义----初学可按照此来,实际可自由定义-----> 若定义后,注意在实现类中按顺序进行实现(代码如下)
默认值:default -----> 不写则是默认值---> 需要写则需要按顺序定义
特殊属性value(),如果只有这一个----> 可以省略value()而只输入内容,如下方标黑注解处
P1
注意:
注解本质上是一个接口,这些接口都继承了Annotation接口.
@注解 ,其实就是一个实现类对象. (这些对象中的方法都是抽象方法) --- 如图P1 和 P0,P1 相当于就是P0的视线类,虽然P0文件的代码是注解,但是实际上还是一个接口,这个接口继承了Annotation(注释)接口
tips:关于其为抽象方法,可以通过反编译技术进行查看。
元注解
即:注解的注解。通常有以下两种:Target(空间角度) Retention(时间角度) ---在注解代码中实现。
代码案例:
注意:@Retention的RUNTIME 为注解保留到运行阶段的方法(程序员常用)
注解的解析
即,判断类、对象、成员方法上是否存在注解,并把注解的内容解析出来。
怎么解析?想先解析谁,就先获取谁,再解析。
案例:(上注解代码 || 下实现代码)
Demo类:传参
输出结果:(上为类注解的解析 || 下为方法注解的解析)----类在方法外,方法在方法内。
改变:可以将Demo代码放到实现类中,上面是为了代码看起来更加简洁,故不合并(编程常用)。
改变如下(有传参与实现类): 参考以下就可以了,不用学习。
总之,反射和注解的一般步骤都是获取再使用,二者都是框架的前提知识。