Java 注解详解 (annotation)

  • 时间:
  • 浏览:1
  • 来源:幸运飞艇APP下载_幸运飞艇APP官方

意味 1个多多类使用了你这种注解:

比如大伙 1个多多多自定义注解:

@SuppressWarnings注解的作用是使编译器忽略掉编译器警告。比如,意味 大伙 的1个多多最好的办法 调用了1个多多@Deprecated最好的办法 ,意味 做了1个多多不安全的类型转换,此时编译器会生成1个多多警告。意味 大伙 我应该 就看哪几种警告,大伙 就都里能 使用@SuppressWarnings注解忽略掉哪几种警告:

@Retention用来定义当前注解的作用范围,意味 大伙 要把大伙 的自定义注解限制为运行时有效,没法大伙 都里能 使用@Retention注解进行指定:

上边你这种注解会告诉编译器和JVM,你这种注解都里能 在运行时有效,JVM会在运行时通过反射机制获取注解信息,关于何如在运行时利用反射获取注解信息,最上边会进行介绍。@Retention注解的值一共有五种:

注解都里能 用于描述1个多多类、接口、最好的办法 、最好的办法 参数、字段、局部变量等。在下边你这种例子中,注解分别用在了类、字段、最好的办法 、参数和局部变量中:

Java注解都里能 用在构建期。当构建大伙 的工程时,构建多线程 池池会编译源码、生成xml文件,打包编译后的代码和文件到jar包。构建过程一般由构建工具自动完成,常用的构建工具有ant、maven。构建工具在构建全是自动扫描大伙 的代码,当遇到构建期注解时,会根据注解的内容生成源码意味 其它文件。

从上边内置注解都里能 就看,注解很方便也很有用,不要 不要 完后 大伙 而是需要 创建大伙 人及所有的注解。创建注解真是和创建类或接口一样简单:

@Documented的作用是告诉JavaDoc工具,当前注解五种也要显示在Java Doc中。比如大伙 用@Document注解了大伙 的自定义注解:

@Target注解用来约束自定义注解都里能 注解Java的哪几种元素。比如下面你这种例子:

意味 1个多多多类使用了上边你这种注解:

并用你这种注解注解了1个多多类:

其中大部分通过名字就能看出它的作用,不过1个多多多都里能 单独介绍一下:

下面这段代码演示了何如使用注解:

元注解而是注解的注解。大伙 都里能 通过元注解来控制描述大伙 自定义注解的行为。

没法当生成MySuperClass的JavaDoc的完后 ,@MyAnnotation也会突然出現在JavaDoc当中。

大伙 都里能 通过default关键字为某个元素设置默认值,当1个多多元素被设置默认值完后 ,你这种元素便成了注解的可选元素。

下面大伙 为@MyAnnotation注解的value元素设置1个多多默认值:

上边对注解做了1个多多完整性介绍,具体该何如使用大伙 的自定义注解呢?其真是现实应用中,大伙 的自定义注解一般全是起到运行时指示的作用,也而是运行时注解。对于运行时注解,大伙 都里能 通过反射机制获得注解信息。

上边代码便创建了1个多多@MyApplication注解,它一共有3个元素。@interface关键字就代表这是1个多多注解类型,不要 不要 使用@interface关键字就都里能 创建注解了。

在大伙 实际应用中,在使用@Deprecated注解时,最好共同使用Java Doc的@deprecated符号,用来描述当前类、最好的办法 意味 字段是不赞成使用的,因此告诉开发者应该用哪个对象替换,如下面例子:

ElementType的值一共有以下几种:

注意@MyAnnotation注解上边的@Retention的值:

@Override注解是1个多多编译时注解,它主要用在1个多多子类的最好的办法 中,当被注解的子类的最好的办法 在父类中找只能与之匹配的最好的办法 时,编译器会报错。 当大伙 在子类中覆盖父类的最好的办法 时,就要用到@Override注解,而是 ,意味 父类中的最好的办法 名称或参数处在改变时,意味 子类没法做相应的调整编译器便会报错,这而是@Override注解所起到的作用。当然@Override注解全是强制使用的,但我还是推荐大伙 尽量使用它。下面是1个多多@Override注解的例子:

没法你这种类的子类也会继承你这种注解:

都里能 注意的是,注解中的每个元素定义这类于接口中的最好的办法 定义。每个元素定义含晒 1个多多数据类型名称,注解元素的数据类型都里能 是java基本数据类型、String、数组,但只能是繁复对象类型。

@Deprecated都里能 用来描述1个多多类、最好的办法 意味 字段,表示java不赞成使用哪几种被描述的对象,意味 大伙 使用了哪几种类、最好的办法 意味 字段,编译器会给大伙 警告。@Deprecated注解使用最好的办法 如下:

value元素设置默认值完后 ,再使用时大伙 就都里能 省略掉value元素,此时的value值采用的是默认值:

意味 MySubClass 继承了MyClass,而MyClass的注解@MyAnnotation是可继承的,最终MySubClass也会有@MyAnnotation注解。

Java五种提供了1个多多内置注解,大伙 分别是:

使用Java注解一般来说主要有五种目的

@Inherited注解表示当前注解会被注解类的子类继承。比如1个多多多自定义注解:

上边注解中1个多多多元素,tableNameprimaryKey,它们人及所有都被赋予了人及所有的元素值。

注解是java5的新价值形式。注解都里能 看做五种注释意味 元数据(MetaData),都里能 把它插入到大伙 的java代码中,用来描述大伙 的java类,从而影响java类的行为。

1个多多java注解由1个多多@符上边跟1个多多字符串构成,这类于而是 :

java注解中一般含晒 一些元素,哪几种元素这类于属性意味 参数,都里能 用来设置值,比如大伙 1个多多多含晒 1个多多元素的@Entity注解:

你这种例子中,@Target的值是ElementType.METHOD,通过它的名称都里能 看出,你这种自定义注解只能注解类的最好的办法 。