自定义Annotation

简介:
自定义Annotation
早就知道jdk5加了新特性Annotation,但是没研究过,前几天公司培训,有一部分是介绍jdk5新特性的,一个是注解一个泛型
今儿复习一下注解
    //用@Deprecated声明该方法不建议使用
    @Deprecated public void doSomething1(){
        Map map = new HashMap();
        map.put("some", "thing");
        System.out.println(map);
    }
    
    //用@SuppressWarnings声明不再进行类型检查
    @SuppressWarnings(value={"unchecked"})
    public void doSomething2(){
        Map map = new HashMap();
        map.put("some", "thing");
    }


写一个自定义注解先
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//要在运行时使用这个注解,必须声明成RUNTIME
Annotation分为三种级别:RUNTIME、CLASS、SOURCE
@Retention(RetentionPolicy. RUNTIME )
public  @interface SomeAnnotation{
    String value();
    String name();
}

下面来使用这个自定义注解:
import java.lang.reflect.Method;
public   class  AnnotationTest {
    
    @SomeAnnotation(value= "value1" ,name= "name1" )
     public   void  doSomething3(){
        
    }
    
     public   static   void  main(String[] args){
    
        Class<AnnotationTest> c = AnnotationTest. class ;
         try  {
             //利用反射得到方法doSomething3
            Method method = c. getMethod ( "doSomething3" );
             //查找doSomething3方法是否有SomeAnnotation的Annotation
             if (method. isAnnotationPresent (SomeAnnotation. class )){
                System. out . println ( "找到SomeAnnotation" );
                 //得到SomeAnnotation
                SomeAnnotation annotation = method. getAnnotation (SomeAnnotation. class );
                System. out . println ( "annotation.value=" +annotation. value ());
                System. out . println ( "annotation.name=" +annotation. name ());
            } else {
                System. out . println ( "没有找到omeAnnotation" );
            }
        }  catch  (SecurityException e) {
            e. printStackTrace ();
        }  catch  (NoSuchMethodException e) {
            e. printStackTrace ();
        }
    }
}

输出结果:
找到SomeAnnotation
annotation.value=value1

annotation.name=name1



本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/635043,如需转载请自行联系原作者

相关文章
|
安全 Java 编译器
一文带你全面深入理解Java注解Annotation
一文带你全面深入理解Java注解Annotation
202 1
一文带你全面深入理解Java注解Annotation
|
Java 开发者
annotation 实现 | 学习笔记
快速学习 annotation 实现,介绍了 annotation 实现系统机制, 以及在实际应用过程中如何使用。
60 0
annotation 实现 | 学习笔记
|
Java Spring
自定义@Validated参数注解
Spring Validated参数校验
295 0
|
开发框架 Java 编译器
Java注解Annotation小结
Java注解Annotation小结
|
XML NoSQL Java
@PropertySource注解使用详情
@PropertySource注解使用详情
840 1
|
Java 编译器
自定义Annotation(二)上
注解Annotation 很强大,很重要,是不是想要自己能够编写注解呢? 接下来,我们就可以尝试编写简单的注解了。
自定义Annotation(二)上
|
Java 开发者
自定义 Annotation | 学习笔记
快速学习 自定义 Annotation
|
Java Spring
Spring 基于注解(annotation)的配置之@Required注解
Spring 基于注解(annotation)的配置之@Required注解
111 0
Spring 基于注解(annotation)的配置之@Required注解
|
前端开发 安全 Java
Java注解(Annotation):请不要小看我!(1)
Java注解(Annotation):请不要小看我!
97 0
Java注解(Annotation):请不要小看我!(1)