Java开发:注解Annotation

一、注解入门

它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

二、常用内置注解

内置注解都定义在java.lang包中。

@Override
只用于修饰方法,表示要重写超类中的方法。

@Deprecated
用于修饰方法、属性、类,被修饰的元素表示不鼓励使用。

@SuppressWarnings
用来抑制编译时的警告信息(镇压所有警告)
@SuppressWarnings(“all”)//镇压所有警告
@SuppressWarnings(“unchecked”)//镇压不被检查的警告
@SuppressWarnings(value={“unchecked”,“deprecation”})//镇压不被检查和过时的API的警告

三、元注解

元注解是用来负责注解其他注解的。
Java定义了4个标准的元注解类型:
@Target
用于描述注解的使用范围(即:被描述的注解可以用在什么地方)

@Retention
表示需要在什么级别保存该注解信息,或者我们的注解在什么地方还有效(runtime > class > source)。

@Documented
说明该注解将被包含在Javadoc中。

@Inherited
说明子类可以继承父类中的该注解。

public class ALesson001 {
    @MyAnnotation
    public static void main(String[] args) {

    }

    @Documented//是否将注解生成Javadoc
    @Retention(value = RetentionPolicy.RUNTIME)//表示注解在哪些地方有效(runtime > class > source,如果在runtime中生效,在class和source中一定生效)
    @Target(value = ElementType.METHOD)//表示注解可以在哪些地方使用
    @Inherited//子类可以继承父类的注解
    public @interface MyAnnotation {

    }

}

四、自定义注解

1、@interface用来声明一个注解,格式:public @interface 注解名{定义内容}
2、注解中的每一个方法实际上是声明了一个配置参数
3、方法的名称就是参数的名称
4、返回类型就是参数的类型(返回值只能是基本类型:Class、String、enum)
5、可以通过default来声明参数的默认值
6、如果只有一个参数成员,一般参数名为value,有且仅有一个名为value的成员参数,在使用注解为value赋值时,可以省略参数名。
7、注解中声明的参数必须要有值,可以使用default设置默认值,例如空字符串、0等


public class ALesson001 {
    @MyAnnotation(sex = 0)
    public static void main(String[] args) {

    }

    @Documented//是否将注解生成Javadoc
    @Retention(value = RetentionPolicy.RUNTIME)//表示注解在哪些地方有效(runtime > class > source,如果在runtime中生效,在class和source中一定生效)
    @Target(value = ElementType.METHOD)//表示注解可以在哪些地方使用
    @Inherited//子类可以继承父类的注解
    public @interface MyAnnotation {

        String value() default "";

        int age() default 0;

        int id() default -1;//-1表示不存在

        int sex();//没有设置默认值,必须在注解处声明

    }

}

end

猜你喜欢

转载自blog.csdn.net/android157/article/details/128125759