快捷搜索:  汽车  科技

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、运行结果

java中如何使用注解(java注解的定义与使用)(1)

猜您喜欢: