java中Annotation注解的好处是使代码更简洁。下面通过一个简单的例子来展示下Annotation如何使用。
首先,写一个自定义的Annotation
@Retention(RetentionPolicy.RUNTIME) //生存周期为运行时
@Target(ElementType.METHOD) //应用对象为方法
public @interface MyTag {
String name() default "张国荣";
}
然后,使用这个Annotation来修饰需要的类
public class Demo {
public static void method1(){
}
@MyTag(name="刘德华")
public static void method2(){
}
}
然后,需要自己编写如何解析这个Annotation的业务逻辑,使用到反射
public class ProcessTool {
public static void process(String clazz) {
// TODO Auto-generated method stub
Class targetClass = null;
try{
targetClass = Class.forName(clazz);
}catch(Exception e){
e.printStackTrace();
}
for(Method m:targetClass.getMethods()){
if(m.isAnnotationPresent(MyTag.class)){
MyTag tag = m.getAnnotation(MyTag.class);
System.out.println("被MyTag注解修饰的方法名称:"+m.getName()+",注解内容为:"+tag.name());
}else{
System.out.println("没被MyTag注解修饰的方法名称:");
}
}
}
}
最后,运行Demo
public class Test {
public static void main(String[] args){
ProcessTool.process("com.meiyang.annotation.Demo");
}
}
运行结果为:
没被MyTag注解修饰的方法名称:
被MyTag注解修饰的方法名称:method2,注解内容为:刘德华
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
没被MyTag注解修饰的方法名称:
本文介绍在Java中如何自定义注解,并通过反射解析这些注解,以实现特定的业务逻辑。通过一个简单的例子展示了注解如何在方法级别上提供额外的信息,以及如何利用反射来读取和利用这些信息。

1561

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



