代码改变世界

Java 注解 - 实践

2025-09-20 08:52  tlnshuju  阅读(8)  评论(0)    收藏  举报

Java 注解

注解让其他程序根据注解信息来决定如何执行该程序

声明使用注解

声明注解

public @interface t {
String aaa();
int bbb();
}

使用

@t(aaa="ttt",bbb = 1)
public class Student  {
@t(aaa="qqq",bbb=2)
public void test(){
}
}

如果只有一个value属性可以简写为

public @interface t {
String value();
}
@t("ttt")
public class Student  {
}

元注解

修饰注解的注解

//声明注解的保留周期
@Retention(RetentionPolicy.RUNTIME)
//注明注解可以用在哪些地方
@Target(ElementType.ANNOTATION_TYPE)
public @interface zj {
}

注解的解析

要解析谁上面的注解,就应该先拿到谁

比如要解析类上的注解,就要先获得类的Class对象

要解析方法的注解,就要先获得方法的Method对象

@zj(value = "装载机",aaa = 99,bbb = {"这种","那种"})
public class Student  {
@zj(value = "悟空",aaa = 77,bbb = {"这边","那边"})
public void test(){}
}
public class DemoApplication {
public static void main(String[] args) throws Exception {
//1.获得class对象
Class aClass = Student.class;
//2.解析
//判断类上是否包含某个注解
if(aClass.isAnnotationPresent(zj.class)){
//获得注解
zj declaredAnnotation = (zj) aClass.getDeclaredAnnotation(zj.class);
//获得注解的值
String value = declaredAnnotation.value();
double aaa = declaredAnnotation.aaa();
String[] bbb = declaredAnnotation.bbb();
System.out.println(value);
System.out.println(aaa);
System.out.println(Arrays.toString(bbb));
}
}
}