自定义Annotation
2019-08-16 10:56:38来源:博客园 阅读 ()
自定义Annotation
除了使用系统提供的Annotation之外,又留给开发者自定义Annotation的支持,此时就需要明确的指定Annotation的操作范围,本课程主要讲解Annotation的定义,以及结合反射获取信息处理。
范例1:自定义Annotation
package com.customAnnotation.demo; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; @Retention(RetentionPolicy.RUNTIME) //定义Annotation运行策略 @interface DefaultAnnotation{ //自定义的Annotation public String title(); //获取数据 public String url() default "www.mldn.com"; //获取数据,默认值 } class Message{ @DefaultAnnotation(title = "MLDN") public void send(String msg) { System.out.println("【消息发送】" + msg); } } public class CustomAnnotation{ public static void main(String[] args) throws Exception{ Method method = Message.class.getMethod("send", String.class); //获取指定方法 DefaultAnnotation anno = method.getAnnotation(DefaultAnnotation.class);//获取指定的Annotation String msg = anno.title() + "(" + anno.url() + ")";//消息内容 method.invoke(Message.class.getDeclaredConstructor().newInstance(), msg); } }
运行结果:
【消息发送】MLDN(www.mldn.com)
范例2:自定义Annotation
package com.customAnnotation.demo; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.reflect.Method; @Target({ElementType.TYPE, ElementType.METHOD})// 此Annotation只能用在类和方法上 @Retention(RetentionPolicy.RUNTIME)//定义Annotation的运行策略 @interface DefaultAnnotation{//自定义Annotation public String title();//获取数据 public String url() default "www.sohu.com";//获取数据,提供默认值 } class Message{ @DefaultAnnotation(title = "搜狐") public void send(String msg) { System.out.println("【消息发送】" + msg); } } public class CustomAnnotation { public static void main(String[] args) throws Exception { Method method = Message.class.getMethod("send", String.class); DefaultAnnotation ca = method.getAnnotation(DefaultAnnotation.class); String msg = ca.title() + "(" + ca.url() + ")"; method.invoke(Message.class.getDeclaredConstructor().newInstance(), msg); } }
运行结果:
【消息发送】搜狐(www.sohu.com)
原文链接:https://www.cnblogs.com/sunzhongyu008/p/11226332.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JAVA自定义注解 2020-06-01
- 自定义ClassLoader 2020-05-28
- 自定义持久层框架设计实现思路 2020-05-27
- 自定义Spring Boot starter 2020-05-25
- Java 注解 2020-05-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash