Java注解,我的理解就类似于标签。比如,一说到新疆人,大家就会想到羊肉串;一说到蒙古人,大家就会想到草原和骑马。羊肉串、草原、骑马,就像是贴在新疆人和蒙古人身上的标签一样。
接下来,我们来自定义一个简单的Java注解,并且在应用中使用它。
一、定义注解
package com.zhuyun;
import java.lang.annotation.*;
@Documented //javaDoc记录
@Retention(RetentionPolicy.RUNTIME) //运行环境可用
@Target({ElementType.TYPE}) //用于任何地方
public @interface Name { //自定义一个注解
String value() default "";
}
二、将注解应用在目标属性上
声明一个Person类,给这个类打上羊肉串的标签
package com.zhuyun;
@Name("羊肉串")
public class Person {
private String id;
private String name;
private int age;
}
三、通过反射获取注解值
通过获取标签的值,来判断这个人到底是新疆人还是蒙古人
package com.zhuyun;
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws NoSuchFieldException {
Person person = new Person();
Class clazz = person.getClass();
Name annotation = (Name) clazz.getAnnotation(Name.class);
if (annotation.value().equals("羊肉串")){
System.out.println("这是个新疆人");
}else if (annotation.value().equals("骑马")){
System.out.println("这是个蒙古人");
}
}
}
四、执行结果
结果是个新疆人