Java注解个人理解总结
- 总述
Java可自定义注解,自定义注解主要设置元注解@Target和@Retention,注解通过设置@Target作用于包、类、接口、实例、方法、注解等类型上;通过设置@Retention,设置该注解的生命周期,注解的生命周期划分为3类,分别是:RetentionPolicy.SOURCE(源码注解)、RetentionPolicy.CLASS(编译时注解)、RetentionPolicy.RUNTIME(运行时注解),如果需要在运行时去获取注解信息,则需设置为RetentionPolicy.RUNTIME。 - 源码注解
源码注解,一般在编程时用于提示程序员,例如定义一个接口类,另外一个类继承该接口,那么该类需要实现所继承接口类的所有接口,接口上的@Override注解,是一种标记类型注解,用于提示被标注的方法实现或重写了父类方法。 - 编译时注解
编译时注解,在编译源码时起作用,比如编译时要额外向注解的某个类、方法或者实例中,进行一些预处理操作时,会用到该注解。例如Android中的@RequiresApi注解,用于消除高版本API在低版本安卓SDK中运行时报错。 - 运行时注解
运行时注解,在程序加载到内存中时仍然存在,通过这种特点,我们可对使用到该类型的注解进行譬如实例化、事件监听等操作,比如butterknife注解框架,可使用注解对控件进行实例化; - 自定义注解如下:
@Target(ElementType.Filed)
@Retention(RetentionPolicy.RUNTIME)
Public @interface ViewBind{
int value();
}