注解分为三类: 内置注解、元注解、自定义注解
@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 "";
- }