1、@Deprecated
表示不鼓励使用此构造函数、字段、本地变量、方法、包、参数和类等,通常因为它很危险,或者存在更好的替代方案。
2、@SuppressLint
Lint是一个静态检查器,围绕Android项目的正确性、安全性、性能、可用性以及可访问性进行分析检查,检查对象包括XML资源、位图、ProGuard配置文件、源文件甚至编译后的字节码。
针对这个检查器,可以使用@SuppressLint标注忽略指定的警告。
3、@Override
表示当前方法的定义将覆盖超类中的方法
4、注解的注解
元注解 | 说明 | 取值 |
@Target | 表示该注解可以用在什么地方 | ElementType.ANNOTATION_TYPE 可以应用于注释类型。 ElementType.CONSTRUCTOR 可以应用于构造函数。 ElementType.FIELD 可以应用于字段或属性。ElementType.LOCAL_VARIABLE 可以应用于局部变量。 ElementType.METHOD 可以应用于方法级注释。 ElementType.PACKAGE 可以应用于包声明。 ElementType.PARAMETER 可以应用于方法的参数。ElementType.TYPE 可以应用于类的任何元素。 |
@Retention | 表示需要在什么级别保存该注解信息 | 1.SOURCE:在源文件中有效(即源文件保留) 2.CLASS:在class文件中有效(即class保留) 3.RUNTIME:在运行时有效(即运行时保留) |
@Documented | 表示将此注解包含在Javadoc中 | 无 |
@Inherited | 表示允许子类继承父类中的注解 | 无 |
示例:
//表示@Override这个注解只能用于方法,且在源码中有效
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
//见上表
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}
//见上表
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
String[] value();
}