添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public static void test2 () { // 创建一个元素不使用 ArrayList<Object> objects = new ArrayList <>();

三、自定义注解和元注解

3.1 元注解

元注解就是负责注解其他注解的注解,Java定义了4个标准的 meta-annotation 类型,其被用来对其他 annotation 类型进行说明

所在包: java.lang.annotation

四个元注解:

@Target :用于描述注解使用范围

@Retention :表示需要在什么级别保存注解信息

  • SOURCE < CLASS < RUNTIME
  • @Documented :说明该注解将被包含在 javadoc

    @Inherited :说明子类可以继承父类中该注解

    * @ClassName Annotation2 * @Description 测试元注解 * @Author wangwk-a * @Date 2022/1/4 20:56 * @Version 1.0 @MyAnnotation public class Annotation2 { @MyAnnotation public static void test () { * 定义一个注解 * @Target 表示注解可以用在哪些地方,ElementType * @Retention 表示注解在什么地方还有效,源码 < class < 运行 * @Documented 表示注解是否生成在JavaDoc中 * @Inherited 表示子类是否可以继承父类的注解 * @author wangwk-a @Target(value = {ElementType.METHOD, ElementType.TYPE}) @Retention(value = RetentionPolicy.RUNTIME) @Documented @Inherited @interface MyAnnotation {

    3.2 自定义注解

    使用 @interface 自定义注解时,自动继承 java.lang.annotation.Annotation 接口

  • @interface 用来声明一个注解,格式 public @interface 注解名{定义内容}
  • 其中每一个 方法 实际上是声明了一个配置参数
  • 方法名称就是参数名称
  • 返回值类型就是参数类型(只能是基本类型、 Class String enum
  • 可以通过 default 来声明参数的默认值
  • 如果只有一个参数成员,一般参数名为 value
  • 注解元素必须要有值,定义注解元素时,经常使用空字符串、0作为默认值
  • * @ClassName Annotation3   * @Description 自定义注解   * @Author wangwk-a   * @Date 2022/1/4 21:09   * @Version 1.0 public class Annotation3 {       * 使用注解,如果参数没有默认值,就必须要给值 @MyAnnotation2(name = "nick") public static void test () {   * 自定义注解   * @author wangwk-a @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation2 {       * 注解的参数:参数类型 + 参数名() default 默认值;       * 默认值为-1则代表不存在      String name () default "" ; int age () default 0 ; int id () default - 1 ;      String[] schools() default { "西工大" }; 复制代码
  •