一 自定义注解的语法很简单
public @interface MyAnnotation
{
}
上面的代码就定义了一个空注解,名字为MyAnnotation。
二 自定义注解也可以有属性
public @interface MyAnnotation
{
public String key() default "name";
public String value() default "xy";
}
若要策略为运行时注解,需加上Retention注解
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation
{
public String key() default "name";
public String value() default "xy";
}
三 为使Annotation有意义,必须结合反射取得设置的内容,下面是一个完整的例子
MyAnnotation.java
package cn.interfaces;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation
{
public String key() default "name";
public String value() default "xy";
}
SimpleBean.java
package cn.bean;
import cn.interfaces.MyAnnotation;
public class SimpleBean
{
@MyAnnotation(key = "name", value = "xy")
public void save()
{
System.out.println("save");
}
}
Test.java
package cn.test;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import cn.interfaces.MyAnnotation;
public class Test
{
public static void main(String[] args) throws IOException,
ClassNotFoundException, SecurityException, NoSuchMethodException
{
Class<?> c = Class.forName("cn.bean.SimpleBean");
Method saveMethod = c.getMethod("save");
Annotation an[] = saveMethod.getAnnotations(); // 取得全部的运行时Annotation
for (Annotation a : an)
{
System.out.println(a);
}
if (saveMethod.isAnnotationPresent(MyAnnotation.class)) // 该方法上是否存在该种类型的注解
{
MyAnnotation ma = saveMethod.getAnnotation(MyAnnotation.class);
String key = ma.key();
String value = ma.value();
System.out.println("key = " + key);
System.out.println("value = " + value);
}
}
}
输出结果
@cn.interfaces.MyAnnotation(value=xy, key=name)
key = name
value = xy
结论
annotation和反射相结合会有很大的作用。
分享到:
相关推荐
JPA、EJB、Spring零配置等等怎么使用相信各位读者都能掌握,这里主要是说如何自定义自己的注解,自己使用自定义的注解。
自定义Annotation的例子,博客地址:http://blog.csdn.net/yirentianran/article/details/52816764
Java基础复习笔记12Java自定义注解Annotation的使用
使用annotationProcessor插件在编译期创建Java文件 使用在idea中 可以尝试下
本文全面讲述了Java注解Annotation与Java自定义注解及相关内容,大家可以认真看看
@Target:用于描述注解的使用范围,如果自定义注解不存在@Target,则表示该注解可以使用在任何程序元素之上。接收参数ElementType,其值如下: /**接口、类、枚举、注解**/ ElementType.TYPE /**字段、枚举的常量**/...
初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation生成javabean映射xml文件)还需要进一步的研究和探讨。涉及到深入annotation的内容,作者将在后文...
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法
针对java 初学者或者annotation 初次使用者全面地说明了annotation 的使用方法、定义 方式、分类。...annotation 应用(例如使用自定义annotation 生成javabean 映射xml 文件)还需要进一步的 研究和探讨
java自定义 注解 annotation、标签库tag、监听listener、junit简单测试代码
自定义Result,自定义Annotation的实例
本文针对java初学者或者annotation初次使用...初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation生成javabean映射xml文件)还需要进一步的研究和探讨。
学习java自定义注解的小例子,处理运行时注解方法,可以结合博客学习,博客地址: http://blog.csdn.net/liuyonglei1314/article/details/59494503
java 元注解+拦截器实现自定义注解 @CmwAutoWired:自定义依赖注入 注意:注入的接口和实现类需要在同一包名下,注解的是类则无限制 @FieldAnnotation:自定义属性注解 @MethodAnnotation:自定义方法注解 @...
java或Java框架中常用的注解及其作用详解:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过...
我们在项目开发过程中,可能会对一些公用方法抽成工具类进行使用。如果我们把这些方法再抽成注解的形式,在一些业务情况下是否更灵活一些呢? 示例是纯净的,只引入了需要的架包,启动后直接访问:ip:port/user/test ...
注解Annotation实现原理与自定义注解例子 每当你创建描述符性质的类或者接口时,一旦其中包含重复性的工 作,就可以考虑使用注解来简化与自动化该过程。 Java提供了四种元注解,专门负责新注解的创建工作
下面小编就为大家带来一篇浅谈Java中注解Annotation的定义、使用、解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
文章目录1. 注解的分类2. 元注解3....通过使用注解,我们可以将这些元数据保存在Java源代码中,并利用 annotation API 为自己的注解构造处理工具,同时注解的优点还包括:更加干净易读的代码以及编译器类
涉及多种线程,死锁,同步队列,异步线程,涵盖了java的自定义注解及反射,包含了23种设计模式,含注释, 线程1(基本应用) 线程2(同步,死锁,线程池) 注解和泛型 Java 注解(Annotation)又称 Java 标注,是 ...