Java 注解详解 (annotation)

  • 时间:
  • 浏览:3
  • 来源:大发PK10APP下载_大发PK10APP官方

@Override注解是1个 多 编译时注解,它主要用在1个 多 子类的法律依据 中,当被注解的子类的法律依据 在父类中找那么 与之匹配的法律依据 时,编译器会报错。 当让我们在子类中覆盖父类的法律依据 时,就要用到@Override注解,原本,意味着父类中的法律依据 名称或参数地处改变时,意味着子类那么 做相应的调整编译器便会报错,这如果 @Override注解所起到的作用。当然@Override注解一定会强制使用的,但我还是推荐让我们尽量使用它。下面是1个 多 @Override注解的例子:

@SuppressWarnings注解的作用是使编译器忽略掉编译器警告。比如,意味着让我们的1个 多 法律依据 调用了1个 多 @Deprecated法律依据 ,意味着做了1个 多 不安全的类型转换,此时编译器会生成1个 多 警告。意味着让我们不看一遍一遍哪几个警告,让我们就还可不还能能 使用@SuppressWarnings注解忽略掉哪几个警告:

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

意味着1个 多 类使用了这些注解:

元注解如果 注解的注解。让我们还可不还能能 通过元注解来控制描述让我们自定义注解的行为。

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

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

并用这些注解注解了1个 多 类:

Java注解还可不还能能 用在构建期。当构建让我们的工程时,构建进程会编译源码、生成xml文件,打包编译后的代码和文件到jar包。构建过程一般由构建工具自动完成,常用的构建工具有ant、maven。构建工具在构建一定会自动扫描让我们的代码,当遇到构建期注解时,会根据注解的内容生成源码意味着其它文件。

注解是java5的新价值形式。注解还可不还能能 看做有有一种注释意味着元数据(MetaData),还可不还能能 把它插入到让我们的java代码中,用来描述让我们的java类,从而影响java类的行为。

比如让我们1个 多多 自定义注解:

中间代码便创建了1个 多 @MyApplication注解,它一共有五个元素。@interface关键字就代表这是1个 多 注解类型,如果 使用@interface关键字就还可不还能能 创建注解了。

注解还可不还能能 用于描述1个 多 类、接口、法律依据 、法律依据 参数、字段、局部变量等。在下边这些例子中,注解分别用在了类、字段、法律依据 、参数和局部变量中:

ElementType的值一共有以下几种:

其中大每项通过名字就能看出它的作用,不过1个 多多 可不还能能 单独介绍一下:

value元素设置默认值完后 ,再使用时让我们就还可不还能能 省略掉value元素,此时的value值采用的是默认值:

Java有有一种提供了1个 多 内置注解,让我们分别是:

@Target注解用来约束自定义注解还可不还能能 注解Java的哪几个元素。比如下面这些例子:

@Deprecated还可不还能能 用来描述1个 多 类、法律依据 意味着字段,表示java不赞成使用哪几个被描述的对象,意味着让我们使用了哪几个类、法律依据 意味着字段,编译器会给让我们警告。@Deprecated注解使用法律依据 如下:

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

1个 多 java注解由1个 多 @符中间跟1个 多 字符串构成,同类于原本:

注意@MyAnnotation注解中间的@Retention的值:

@Retention用来定义当前注解的作用范围,意味着让我们要把让我们的自定义注解限制为运行时有效,那么 让我们还可不还能能 使用@Retention注解进行指定:

那么 当生成MySuperClass的JavaDoc的完后 ,@MyAnnotation也会出先在JavaDoc当中。

让我们还可不还能能 通过default关键字为某个元素设置默认值,当1个 多 元素被设置默认值完后 ,这些元素便成了注解的可选元素。

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

中间注解中1个 多多 元素,tableNameprimaryKey,它们该人都被赋予了自己的元素值。

从中间内置注解还可不还能能 看一遍,注解很方便也很有用,如果 完后 让我们也可不还能能 创建让我们自己的注解。创建注解实在和创建类或接口一样简单:

那么 这些类的子类也会继承这些注解:

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

这些例子中,@Target的值是ElementType.METHOD,通过它的名称还可不还能能 看出,这些自定义注解那么 注解类的法律依据 。

可不还能能 注意的是,注解中的每个元素定义同类于接口中的法律依据 定义。每个元素定义暗含1个 多 数据类型名称,注解元素的数据类型还可不还能能 是java基本数据类型、String、数组,但那么 是简化对象类型。

意味着1个 多多 类使用了中间这些注解:

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

java注解中一般暗含许多元素,哪几个元素同类于属性意味着参数,还可不还能能 用来设置值,比如让我们1个 多多 暗含1个 多 元素的@Entity注解:

在让我们实际应用中,在使用@Deprecated注解时,最好一同使用Java Doc的@deprecated符号,用来描述当前类、法律依据 意味着字段是不赞成使用的,如果 告诉开发者应该用哪个对象替换,如下面例子:

中间对注解做了1个 多 完全介绍,具体该何如使用让我们的自定义注解呢?其实在现实应用中,让我们的自定义注解一般一定会起到运行时指示的作用,也如果 运行时注解。对于运行时注解,让我们还可不还能能 通过反射机制获得注解信息。