内置注解
注意:这些都是常用的,当然还有很多内置注解,请看官方文档。
- @Override:定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写超类中的了一个方法声明。
- @Deprecated:用于修饰方法,属性,类,不推荐使用,通常是因为它很危险或者存在更好的选择。
- @SuppressWarnings:用来抑制编译时的警告信息,与前面两个注释不同,你需要添加一个参数才能正确使用。
@SuppressWarnings("all") // 抑制所有的错误
@SuppressWarnings("unchecked")
@SuppressWarnings("unchecked","deprecation")
....
元注解
- 元注解的作用就是负责注释其他注解,java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型做说明。
- @Target:用来描述注解的使用范围(即:被描述的注解可以用在什么地方)。
- @Retention:表示需要在什么级别保存该注解信息,用来描述注解的生命周期(SOURCE<CLASS<RUNTIME)。
- @Document:说明该注解将被包含在javadoc中。
- @Inherited:说明子类可以继承父类中的该注解。
如何定义Annotation
// 第一步,用@interface定义注解
public @interface Demo{
}
// 第二步,添加参数,默认值
public @interface Demo{
int type() default 0;
String name() default "",
String value() default ""
}
// 把最常用的参数定义为value(),推荐所有参数都尽量设置默认值
// 第三步,用元注解配置注解
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Demo{
int type() default 0;
String name() default "",
String value() default ""
}
// 其中,必须设置@Target和@Retention,@Retention一般设置为RUNTIME,因为我们自定义的注解通常要求在运行期读取。一般情况下,不必写@Inherited和@Repeatable。