当前位置:网站首页>Annotation and reflection
Annotation and reflection
2022-07-05 05:30:00 【Drunken dragon boat】
Comments and reflections
One : annotation
Custom annotation :
import java.lang.annotation.*;
/** * Built-in annotations * @Override Representation override * @Deprecated Indicates that it has been deprecated * @SuppressWarnings Indicates no warning */
/** * Yuan notes - Custom annotation * @author liu ming yong */
@MyAnnotation(value = " Custom annotation ")
public class Annotation {
// Note if the parameter has no default value , Then the annotation must be assigned
@MyAnnotation(value = "qq")
public void s(){
}
}
/** * @Target Indicates where annotations can be used TYPE( class ),METHOD( Method ) * @Retention Indicates where the annotation is valid runtime( Runtime )>class( Compiled bytecode )>sources( Source code ) * @Documented Indicates whether the annotation is produced in JAVAdoc in * @Inherited Indicates that the child class can inherit the parent class annotation * @author liu ming yong */
@Target(value = {
ElementType.TYPE,ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface MyAnnotation {
// Annotated parameters : Parameter type Parameter name ();
String value();
String name() default "my name is liu ming yong";
int age() default 0;
String[] schools() default {
" National Defense University "," Tsinghua University "};
}
Two : Reflection
The concept of reflection :
Reflection( Reflection ) yes java It is regarded as a quasi dynamic language ( A language that can change its structure during operation ) The key to , Reflection allows the program to get the internal information of any class during execution , And can directly operate the internal properties or methods of any object .
After class loading , In the heap memory method area, a Class Type object ( There is only one class Class object ), This object contains the complete class structure information .
Get reflection Class In several ways :
/** * @author liu ming yong */
public class Reflection01 {
public static void main(String[] args) throws ClassNotFoundException {
Person person = new Student();
// Mode one : Get... By object
Class c1 = person.getClass();
System.out.println(c1);
// Mode two : adopt forName get
Class c2 = Class.forName(" Comments and reflections .Student");
System.out.println(c2);
// Mode three : By class name .class get
Class c3 = Student.class;
System.out.println(c3);
// Mode 4 : Get through the wrapper class of basic data type
Class c4 = Integer.TYPE;
System.out.println(c4);
// Get parent type
Class c5 = c1.getSuperclass();
System.out.println(c5);
}
}
class Person {
String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
}
class Student extends Person {
}
Get the structure of the class runtime :
边栏推荐
- Solon Logging 插件的添加器级别控制和日志器的级别控制
- A new micro ORM open source framework
- Haut OJ 2021 freshmen week II reflection summary
- 动漫评分数据分析与可视化 与 IT行业招聘数据分析与可视化
- Double pointer Foundation
- Haut OJ 1218: maximum continuous sub segment sum
- Daily question - Search two-dimensional matrix PS two-dimensional array search
- sync. Interpretation of mutex source code
- YOLOv5-Shufflenetv2
- xftp7与xshell7下载(官网)
猜你喜欢

To the distance we have been looking for -- film review of "flying house journey"

sync. Interpretation of mutex source code

【Jailhouse 文章】Look Mum, no VM Exits

Pointnet++学习

Fragment addition failed error lookup

游戏商城毕业设计

剑指 Offer 53 - II. 0~n-1中缺失的数字

Using HashMap to realize simple cache

National teacher qualification examination in the first half of 2022

YOLOv5-Shufflenetv2
随机推荐
Download xftp7 and xshell7 (official website)
MySQL数据库(一)
[to be continued] [depth first search] 547 Number of provinces
Haut OJ 1241: League activities of class XXX
游戏商城毕业设计
Software test -- 0 sequence
全国中职网络安全B模块之国赛题远程代码执行渗透测试 //PHPstudy的后门漏洞分析
Service fusing hystrix
服务熔断 Hystrix
A new micro ORM open source framework
Acwing 4300. Two operations
Reader writer model
To be continued] [UE4 notes] L4 object editing
剑指 Offer 05. 替换空格
Pointnet++ learning
[to be continued] [UE4 notes] L2 interface introduction
GBase数据库助力湾区数字金融发展
ALU逻辑运算单元
质量体系建设之路的分分合合
Improvement of pointnet++