(反射与Annotation)自定义Annotation
程序员文章站
2024-01-20 17:38:04
...
自定义Annotation
java中提供有新的语法,使用“@interface”来定义Annotation。
范例:自定义Annotation
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method;
public class AnnotationDemo{
public static void main(String[] args) throws Exception {
Method method = Message.class.getMethod("send",String.class); //获取指定方法
DefaultAnnotation defaultAnnotation = method.getAnnotation(DefaultAnnotation.class); //获取指定的Annotation
String str = defaultAnnotation.title() + "url:("+defaultAnnotation.url()+")"; //字符串组合
method.invoke(Message.class.getDeclaredConstructor().newInstance(),str); //调用send方法填入参数
}
}
@Retention(RetentionPolicy.RUNTIME) //定义Annotation运行时的策略
@interface DefaultAnnotation{ //自定义的Annotation
public String title();//获取数据
public String url() default "www.baidu.com" ;//获取数据,默认值
}
class Message{
@DefaultAnnotation(title = "百度")
public void send(String msg){
System.out.println("消息发送:"+msg);
}
}
消息发送:百度url:(www.baidu.com)
使用Annotation的最大特点是可以结合反射机制实现程序的处理。