Java注解
-
@Override 作用防止子类重载父类的方法
-
注解的分类:
源码注解 :注解只在源码中存在,编译成.class文件就不存在了
编译时注解 : @Override 在编译期间就能发挥作用
运行时注解 : 框架的一些东西,在运行时发挥作用 -
如果注解只有一个成员,则成员名必须为value(), 在使用时可 以忽略成员名和赋值号; 注解类可以没有成员,没有成员的注解称为标识注解
-
元注解:
@Target({ElementType.METHOD, ElementType.TYPE})
作用域: CONSTRUCTOR 构造方法的声明
FIELD 字段声明
LOCAL_VARIBLE 局部变量声明
METHOD 方法声明
PACKAGE 包声明
PARAMETER 参数声明
TYPE 类接口
@Retention(RetentionPolicy.RUNTIME)
生命周期: SOURCE 源码注解
CLASS 编译注解
RUNTIME 运行时注解
@Inherited
是否允许子类继承
@Documented
生成JavaDO时会生成Java注解
5.解析注解:
通过反射获取类、函数或者成员上的运行时注解信息,从而实现动态控制程序运行的逻辑
区别
.Class Class.forName是编译时决定的
.getClass()是运行时决定的
.class 只是装入内存,不对类进行初始化,不会执行构造函数和静态非静态 代码块
Class.forName():
.getClass(): 只会对类进行静态初始化