Java Annotation
2019-12-19 本文已影响0人
钦_79f7
Java注解
作为Android开发者,本身语言基础是基于Java的。我们平时在使用的Android Support Annotation中的注解,其中定义的各种实用的注解都是基于Java的元注解定义得来的,所以我们有必要熟悉Java中的相关注解。
Java元注解
元注解:就是负责注解其他注解的注解。Java 1.5 定义了4个标准的meta-annotation类型,被用来对其他注解类型作说明。
- @Retention
- @Target
- @Documented
- @Inherited
这些注解全部存在于java.lang.annotation包中,有兴趣可以查看相关源码了解一下。
@Retention
@Retention定义了注解的生命周期
- SOURCE: 该注解仅在源码中有效,即.java源文件
- CLASS: 该注解class文件中页有效
- RUNTIME: 该注解在运行时仍然有效
@Target
@Target定义了注解的作用域,即被定义的注解能够应用的范围。其值是在ElementType中枚举的
- CONSTRUCTOR:构造器
- FIELD:成员属性
- LOCAL_VARIABLE:局部变量
- METHOD:方法
- PACKAGE:包
- PARAMETER:参数
- TYPE:描述类、接口(包括注解额类型)或者enum声明
@Documented
@Documented用于描述其他类型的注解应该被作为被标注的程序成员的公共API,因此可以被javadoc工具文档化。这是一个标记注解,无成员。
@Inherited
@Inherited所标记的annotation,被用于一个Class时,那么该类的子类也会默认被此annotation注解
@Inherited标注的annotation的继承属性,只会被父子类这样的继承关系所继承,并不会继承接口的annotation,方法也不会继承重载的annotation
Java内置注解
- @Override
- @Deprecated
- @SuppressWarnings
自定义注解
==未完待续==