
本文共 1751 字,大约阅读时间需要 5 分钟。
1. 注解简介
Java注解是为代码提供元数据,注解可以看做标签,可以添加额外的辅助信息
2. 注解的使用范围
注解可以用在package , class , method , field上面
我们可以通过反射实现对这些元数据(注解的额外信息)的访问
3. 注解的分类
① 内置注解
@Override :重写
@Deprecated :弃用
@SuppressWarnings :抑制警告信息
② 元注解
元注解的作用是用于给其他注解添加注解 元注解分为以下4类:
1. @Target :用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
ElementType.ANNOTATION_TYPE 可以给一个注解进行注解 ElementType.CONSTRUCTOR 可以给构造方法进行注解 ElementType.FIELD 可以给属性进行注解 ElementType.LOCAL_VARIABLE 可以给局部变量进行注解 ElementType.METHOD 可以给方法进行注解 ElementType.PACKAGE 可以给一个包进行注解 ElementType.PARAMETER 可以给一个方法内的参数进行注解 ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举
//Target用于表示注解在什么可用 @Target(value = { ElementType.TYPE,ElementType.METHOD})
2. @Retention :表示需要在什么级别保存该注释信息,用于描述注解的生命周期 (runtime>class>source)
//Retention表示注解有效范围 runtime>class>source@Retention(value = RetentionPolicy.RUNTIME)
3. @Document:说明该注解将被包含在javadoc中
//Documented 表示是否将注解生成在JavaDoc中@Documented
4. @Inherited: 说明子类可以继承父类中的该注解
//Inherited 表示子类可以继承父类的注解@Inherited
③ 自定义注解
自定义注解格式:public @ interface注解名{定义内容}
可以通过default来声明自定义注解内参数的默认值
如果只有一个参数成员, 一般参数名为value,且使用注解传参时可以不用写"value="
注解元素必须要有值,定义注解元素时,经常使用空字符串,0作为默认值
自定义注解示例:
//自定义一个注解 这里列出4个元注解的作用//Target用于表示注解在什么可用 TYPE是类可用@Target(value = { ElementType.TYPE})//Retention表示注解有效范围 runtime>class>source@Retention(value = RetentionPolicy.RUNTIME)//Documented 表示是否将注解生成在JavaDoc中@Documented//Inherited 表示子类可以继承父类的注解@Inherited@interface ClassAnnotation{ int id() default 0; String name() default ""; }
@Target(value = { ElementType.METHOD})@Retention(value = RetentionPolicy.RUNTIME)@interface MethodAnnotation{ String value() default "";}
使用自定义注解
@ClassAnnotation(id=123,name="小丑")class TestAnnotation { @MethodAnnotation("abc") public void testAnnotation(){ } public static void main(String[] args) { }}
发表评论
最新留言
关于作者
