Java中的注解
发布日期:2021-05-07 06:54:34 浏览次数:18 分类:精选文章

本文共 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) {       }}
上一篇:2019 CSP-S 被虐记
下一篇:Java中的反射

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月30日 10时57分25秒