当前位置:网站首页>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 :
边栏推荐
猜你喜欢
[轉]: OSGI規範 深入淺出
[merge array] 88 merge two ordered arrays
[turn to] MySQL operation practice (III): table connection
剑指 Offer 35.复杂链表的复制
Romance of programmers on Valentine's Day
A new micro ORM open source framework
[interval problem] 435 Non overlapping interval
[to be continued] [depth first search] 547 Number of provinces
[转]: OSGI规范 深入浅出
Web APIs DOM node
随机推荐
Yolov5 adds attention mechanism
每日一题-无重复字符的最长子串
26、 File system API (device sharing between applications; directory and file API)
剑指 Offer 09. 用两个栈实现队列
Animation scoring data analysis and visualization and it industry recruitment data analysis and visualization
Haut OJ 1243: simple mathematical problems
[to be continued] [UE4 notes] L3 import resources and project migration
游戏商城毕业设计
Romance of programmers on Valentine's Day
[转]:Apache Felix Framework配置属性
挂起等待锁 vs 自旋锁(两者的使用场合)
卷积神经网络简介
xftp7与xshell7下载(官网)
SAP method of modifying system table data
Developing desktop applications with electron
[to be continued] [UE4 notes] L1 create and configure items
[depth first search] 695 Maximum area of the island
GBase数据库助力湾区数字金融发展
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
Service fusing hystrix