1、注解类
@interface A{}
2、应用了注解的类
@A
class B{}
3、对应用注解类的类进行反射操作的类
class C{
B.class.isAnnotationPresent(A.class);
A a = B.class.getAnnotation(A.class);
}例子
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@MyAnnotation(name="ss",color=MyEnumeration.red,arr={1,2},myAnno=@MyAnno(value="2222"))
public class AnnotationTest {
public static void main(String[] args) {
if(AnnotationTest.class.isAnnotationPresent(MyAnnotation.class)){
MyAnnotation myAnno = AnnotationTest.class.getAnnotation(MyAnnotation.class);
System.out.println(myAnno.name());
System.out.println(myAnno.color().nextColor());
System.out.println(myAnno.arr());
System.out.println(myAnno.myAnno());
}
}
}
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation {
String name();
MyEnumeration color();
int[] arr();
MyAnno myAnno() default @MyAnno("11");
}
//注解中的注解
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnno{
String value();
}
//枚举
enum MyEnumeration{
red {
@Override
public MyEnumeration nextColor() {
return green;
}
},green{
@Override
public MyEnumeration nextColor() {
return yellow;
}
},yellow{
@Override
public MyEnumeration nextColor() {
return red;
}
};
public abstract MyEnumeration nextColor();
}
本文详细介绍了Java中注解的应用与反射操作,通过实例展示了如何使用反射获取并操作注解信息,深入理解注解与反射在Java开发中的作用。

被折叠的 条评论
为什么被折叠?



