美文网首页
Tip小杂记——java注解探索(上)

Tip小杂记——java注解探索(上)

作者: Cloneable | 来源:发表于2019-03-24 22:12 被阅读0次

在java的代码中,总是能看见注解的使用,流行的框架,项目中自定义的注解等,注解在java中担当了重要的作用,所以我决定了解学习注解。

注解需要使用@interface来声明,如

public @interface MyHello {
  int value() default 0;
}

注解中的方法有几点需要注意的。

  • 不能有异常的抛出
  • 方法的返回类型是基础类型,字符串,类,枚举和数组
  • 方法不能有参数
  • 可以给方法分配默认值

注解也分为几种类型,有标记型、单值型和多值型的,接下来分别介绍一下。

  • 标记型
public @interface Initable {}

标记型注解中没有方法,只是用来标记被注解的地方,可以根据此注解对被标记处进行相应处理。

  • 单值型
public @interface MyHello {
  int value() default 0;
}

@MyHello(value = 12)

该注解只有一个值定义。

  • 多值型
public @interface MyHello {
  int value() default 0;
  String name() default "";
}

@MyHello(value = 12, name = "cloneable")

该注解中有多个值的定义。

java本身提供了几个注解,专门用以定义注解。

  • @Target
    Target是用来声明注解的类型,也就是可以被使用的地方。Target注解中的值是ElementType枚举,有如下几个值。
    类型值 表示注解可作用的地方
    TYPE 类,接口(包括注解类型)和枚举
    FIELD 域(包括枚举常量)
    METHOD 方法
    PARAMETER 参数
    CONSTRUCTOR 构造方法
    LOCAL_VARIABLE 局部变量
    ANNOTATION_TYPE 注解类型
    PACKAGE

可以只声明注解作用于一个地方,也可以声明注解可作用于多个地方。

@Target(ElementType.FIELD)
public @interface MyHello {
  int value() default 0;
  String name() default "";
}

@Target({ElementType.FIELD, ElementType.METHOD})
public @interface MyHello {
  int value() default 0;
  String name() default "";
}
  • @Retention
    Retention用于声明注解的被保留的级别,注解中的值是RetentionPolicy枚举,有如下几个值。
    类型 保留级别
    SOURCE 源文件可用,在编译时注解失效
    CLASS 在class文件中可用,注解被保留在class文件中,但虚拟机中不可用,是默认级别
    RUNTIME 在运行时可用,在编译时和虚拟机运行时都可用
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyHello {
  int value() default 0;
  String name() default "";
}
  • @Inherited
    表示被注解的类的子类自动被此注解作用。
  • @Document
    标记注解被包含在文档中。

相关文章

  • Tip小杂记——java注解探索(上)

    在java的代码中,总是能看见注解的使用,流行的框架,项目中自定义的注解等,注解在java中担当了重要的作用,所以...

  • Tip小杂记——java注解探索(下)

    上节中简单介绍了几个java原生注解,根据这些原生注解派生出了许多用户自定义注解,这节来了解下如何制作简单的自定义...

  • java - 注解

    1. 元注解 元注解:用在注解上的注解,java1.5后添加的4个元注解: @Target @Retention ...

  • 菜鸟学服务端技术----Spirng基础

    注解 Java基础加强总结(一)——注解(Annotation) java中的注解是如何工作的? java 注解 ...

  • 自定义注解

    java annotation基础 java注解分为标准注解和元注解。 标准注解是java为我们提供的预定义的注解...

  • Java注解的使用

    Java注解的使用 参考 廖雪峰java教程 使用注解 什么是注解(Annotation)?注解是放在Java源码...

  • Java原生注解和Spring注解的说明

    注解 java 原生注解 Spring 中的注解 一 Java原生注解 Java注解是在JDK1.5以后引入的新特...

  • Java 注解

    JAVA注解 Java 自带注解(系统注解) @Override 表示重写注解 @Deprecated 表示过时的...

  • 1.8 Java 注解annotation

    1.1 注解声明 Java注解Annotation,有声明注解和元注解 元注解:Java提供的元注解,所谓元注解就...

  • Java注解学习总结(脑图)

    注解的提取测试:定义注解: 测试注解提取: 参考:《Java编程思想》java注解

网友评论

      本文标题:Tip小杂记——java注解探索(上)

      本文链接:https://www.haomeiwen.com/subject/iarpvqtx.html