当前位置:网站首页>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 :
边栏推荐
- 用STM32点个灯
- YOLOv5-Shufflenetv2
- [to be continued] [depth first search] 547 Number of provinces
- kubeadm系列-00-overview
- 2022上半年全国教师资格证下
- lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
- [binary search] 34 Find the first and last positions of elements in a sorted array
- Haut OJ 1243: simple mathematical problems
- 26、 File system API (device sharing between applications; directory and file API)
- Haut OJ 1316: sister choice buys candy III
猜你喜欢
随机推荐
[speed pointer] 142 circular linked list II
ssh免密登录设置及使用脚本进行ssh登录并执行指令
注解与反射
Csp-j-2020-excellent split multiple solutions
lxml. etree. XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
Demonstration of using Solon auth authentication framework (simpler authentication framework)
[to be continued] [UE4 notes] L1 create and configure items
全国中职网络安全B模块之国赛题远程代码执行渗透测试 //PHPstudy的后门漏洞分析
数仓项目的集群脚本
Shell Sort
常见的最优化方法
Pointnet++学习
Codeforces Round #715 (Div. 2) D. Binary Literature
Gbase database helps the development of digital finance in the Bay Area
A preliminary study of sdei - see the essence through transactions
Alu logic operation unit
[binary search] 69 Square root of X
[sum of two numbers] 169 sum of two numbers II - enter an ordered array
[turn to] MySQL operation practice (III): table connection
挂起等待锁 vs 自旋锁(两者的使用场合)