内置注解、元注解、自定义注解

  注解(Annotation)不是程序本身,但是可以对程序作出解释,同时注解还可以让其他程序读取。我们可以把注解加在包(package)、类(class)、方法(method)和变量(field)的上面。
  注解的格式为 : @注解名

一、内置注解

1、@Override

  定义在 java.lang.Override 中 , 此注释只适用于修辞方法 , 表示一个方法声明打算 重写超类中的另一个方法声明,简单来说就是子类在重写父类方法的时候可以加上这个注解。

2、@Deprecated

  定义在java.lang.Deprecated中 , 此注释可以用于修辞方法 , 属性 , 类 , 表示不 鼓励程序员使用这样的元素 , 通常是因为它很危险或者存在更好的选择 。即是此方法已经过时,不推使用。

3、@SuppressWarnings

  定义在 java.lang.SuppressWarnings 中,用来抑制编译时的警告信息,与前两个注释有所不同,你需要添加一个参数才能正确使用,这些参数都是已经定义好了的, 我们选择性的使用就好了 ,一般我们使用 @SuppressWarnings(“all”)

二、元注解

  除了 Java 中为我们定义好的注解,我们还可以自定义注解, Java定义了4个标准的元注解(meta-annotation)类型,他们被用来 提供对其他注解类型作说明 。

1、@Target

  用来描述注解的使用范围,即注解可以使用在什么地方,在定义注解的时候使用这个我们可以更加清晰的知道它的使用范围,它的取值范围被定义在了一个类中,如下:

public enum ElementType {
  
    TYPE,              //类,接口
    
    FIELD,            //成员变量

    METHOD,          //方法

    PARAMETER,       //方法参数

    CONSTRUCTOR,    //构造方法

    LOCAL_VARIABLE,     //局部变量

    ANNOTATION_TYPE,      //注解类
    
    PACKAGE,           // 包

    TYPE_PARAMETER,     //类型参数

    TYPE_USE      //使用类型的任何地方
}

  上面这个类中定义的就是它的范围,实例代码如下:

//修饰自定义注解的使用范围
@Target(value = {ElementType.METHOD,ElementType.TYPE,ElementType.FIELD})
//自定义注解
@interface MyAnnotation{
  
}
2、@Retention注解

   表示需要在什么级别保存该注释信息 , 用于描述注解的生命周期。即是,被描述的注解在它所修饰的类中可以被保留到何时,一共有三种策略,被定义在一个类中,如下所示:

public enum RetentionPolicy {
   
    SOURCE,    //源文件保留
    
    CLASS,      //编译器保留

    RUNTIME    //运行期保留,可以反射获取注解信息
}

  实例代码如下:

@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{ 

}
3、@Documented

  描述在使用 javadoc 工具为类生成帮助文档时是否要保留其注解信息。代码如下:

@Documented  // 生成DOc文档时候使用
@interface MyAnnotation{

}
4、@Inherited

  使用它修饰的注解具有继承性,代码如下:

@Inherited //子类可以继承父类的注解
@interface MyAnnotation{

}

三、自定义注解

   自定义注解时使用 @interface 时,自动继承了了 java.lang.annotation.Annotation接口。它的基本语法为:

public @interface CherryAnnotation {

}

  在自定义注解中我还可以设置参数,且只有一个参数的时候,默认使用value当做参数名字 , 使用的时候可以省略参数名,格式如下:

@interface MyAnnotation{
    String value() default "";   //参数类型,且后面的括号不能省略,可以给一个默认的值
}

  自定义注解中定义参数的时候,后面的括号不能省略,且可以给一个默认的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值