注解分类:
注解分为三类: 内置注解、元注解、自定义注解
内置注解
@SuppressWarnings
镇压警告注解: 被注解的类或方法中将不会出现警告
@Deprecated
中划线注解: 用于注解不建议使用的类或方法,被注解者在被调用时会被添加中划线(不建议使用是出于开发者角度的建议,并不代表不能使用)
@Override
重写注解: 说明性质的注解,用于说明被注解方法重写自父类中的方法(不添加该注解亦可进行重写)
元注解
元注解即注解注解的注解
@Target
设置可以使用该注解的元素
参数 | 描述 |
ElementType.Type | 可以修饰类、接口、注解或枚举类型 |
ElementType.FIELD | 可以修饰属性(成员变量),包括枚举常量 |
ElementType.METHOD | 可以修饰方法 |
ElementType.PARAMETER | 可以修饰参数 |
ElementType.CONSTRUCTOR | 可以修饰构造方法 |
ElementType.LOCAL_VARIABLE | 可以修饰局部变量 |
ElementType.ANNOTATION_TYPE | 可以修饰注解类 |
ElementType.PACKAGE | 可以修饰包 |
@Retention
设置注解的生效范围
RUNTIME > CLASS > SOURCE(自定义注解通常使用RUNTIME即可)
@Documented
设置注解可被生成在Javadoc
@Inherited
设置注解可被子类继承
自定义注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
//通过@interface进行自定义注解时 自动继承java.lang.annotation.Annotation接口
public class Part_03 {
//注解的参数可以显示赋值
//若参数无初始值则必须赋值
@TestAnnotation(name = "alan")
public void test(){
}
}
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface TestAnnotation{
//注解的参数:参数类型 + 参数名 + ()
String name() default "";
}