常见的注解
@Override
@Overload
@Deprecated 过时
等.....
/**
*@deprecated {@link #方法名()}提示可替代方法
*/
@Deprecated
注解类:Annotion,给编译器进行执行
声明注解使用
@interface,本质也是接口,也可以设置抽象方法,起到属性的作用
package java.lang.annotation;public enum RetentionPolicy {SOURCE, //保留到编译时,运行时丢弃CLASS, //保留到字节码,运行时丢弃RUNTIME//保留到运行时
}
package java.lang.annotation;public enum ElementType {TYPE,FIELD, //变量METHOD,//方法PARAMETER,//参数CONSTRUCTOR,//构造器LOCAL_VARIABLE,//本地ANNOTATION_TYPE,PACKAGE,//包TYPE_PARAMETER,TYPE_USE,MODULE,RECORD_COMPONENT;
}
@interface中 定义的方法可以有 default 修饰,表示不写参数会用默认值, String value();value是定义的方法,使用时可以不写 value = xxx,如果是其他则声明 value = xxx
Inject属于依赖注入,把依赖权交给外部属于依赖注入,比如通过构造器传参也属于依赖注入
getClas().getName() 和 getClass().getCanonicalName() 区别
implementation 如果是别的第三方库引用,则项目中引用不到 需要换成api