注解Annotation

 

自定义注解

 

1
2
3
4
5
6
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,TYPE_PARAMETER,TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
 
String[] value() default "aaa";
}

  

  

元注解

对现有的注解进行解释说明的注解

Retention:指定所修饰的Annotation的生命周期:SOURCE\CLASS(默认行为)\RUNTIME,只有声明为RUNTIME生命周期的注解,才能通过反射获取。

Target:用于指定被修饰的Annotation 能用于修饰哪些程序元素

----自定义注解通常都会指定以上两个元注解

Documented:表示所修饰的注解在被javadoc解析时保留下来

Inherited:被它修饰的Annotation 将具有继承性

 

 

 

 

 

 

 

类型注解

ElementType.TYPE_PARAMETER 表示该注解能写在类型变量的声明语句中,如泛型声明
ElementType.TYPE_USE 表示该注解能写在使用类型的任何语句中。

1
2
3
4
5
6
class Generic<@MyAnnotation T> {
    public void show() throws @MyAnnotation RuntimeException{
        ArrayList<@MyAnnotation String> list = new ArrayList();
        int num = (@MyAnnotation int)10L;
    }
}

  

 

posted @   iTao0128  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示