java中如何使用注解(java注解的定义与使用)
java中如何使用注解(java注解的定义与使用)了解四个元注解之后,我们就可以创造一个自己的注解:@Inherited 允许子类继承父类注解@Target 表示注解用在什么地方(类、方法、构造器)@Retention 表示需要在什么级别保存该注解(source、class、runtime)@Documented 将此注解包含在JavaDoc中
在当前java编程中,注解的使用越来越频繁。注解可以帮我们简化代码,但是注解背后的原理以及如何自定义一个注解,也值得我们分析。
java本身只内置了三个注解
@Override,@Deprecated @Suppress Warning
还有四个元注解(用来创造其他注解)
@Target 表示注解用在什么地方(类、方法、构造器)
@Retention 表示需要在什么级别保存该注解(source、class、runtime)
@Documented 将此注解包含在JavaDoc中
@Inherited 允许子类继承父类注解
了解四个元注解之后,我们就可以创造一个自己的注解:
1、注解的创造
/**
* 种子标记
* 被标记为种子的对象,将是未来的希望
* @author by panstark
* @description
* @notice
* @date 2021/4/29
*/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Seed {
int age() default 0;
String description() default "seed";
}
2、注解的使用
java编程思想中,写道:如果没有用来读取注解的工具,那么注解也不会比注释更有用。
创建注解后,在应用类上添加注解
@Seed(age = 1 description = "Jesus is a good people.")
public class Jesus {
public String name;
public String funcation;
public String age;
public String getName() {
return name;
}
public String getFuncation() {
return funcation;
}
public String getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setFuncation(String funcation) {
this.funcation = funcation;
}
public void setAge(String age) {
this.age = age;
}
}
在类Jesus上添加了@Seed注解,相当于给Jesus增加了一个标记。那么我们就可以通过反射,对Jesus做很多事情。
Jesus测试类
import com.pan.anno.Seed;
public class SeedTest {
public static void checkSeed(Class c){
if(c.isAnnotationPresent(Seed.class)){
Seed annotation = (Seed) c.getDeclaredAnnotation(Seed.class);
int age = annotation.age();
String description = annotation.description();
System.out.println("age:" age " description:" description);
}
}
public static void main(String[] args) {
//有seed注解
Jesus jesus = new Jesus();
//没有seed注解
Jone jone =new Jone();
checkSeed(jesus.getClass());
checkSeed(jone.getClass());
}
}
3、运行结果