Java注解

        注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。Java中内置了三种类型的注解:Override、SuppressWarning、Deprecated

1、自定义注解

        注解的定义和接口的定义很像,注解也会被编译为class文件。使用@interface 来定义一个注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
	public String descripton() default "";
}
       2、 Java内置了四种元注解。

            元注解就是用来注解其他注解的。如上面代码的@Target @Retention

        @Target     

        用于修饰 Annotation 定义, 用于指定被修饰的 Annotation 能用于修饰哪些程序元素.。这些元素被保存在ElementType这个枚举类中。

    1.CONSTRUCTOR:用于描述构造器
    2.FIELD:用于描述域
    3.LOCAL_VARIABLE:用于描述局部变量
    4.METHOD:用于描述方法
    5.PACKAGE:用于描述包
    6.PARAMETER:用于描述参数

    7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

      @Retention   

        定义了该Annotation被保留的时间长短:@Rentention 包含一个 RetentionPolicy 类型的成员变量, 使用 @Rentention 时必须为该 value 成员变量指定值:

        RetentionPolicy.CLASS: 编译器将把注释记录在 class 文件中. 当运行 Java

 程序时, JVM 不会保留注释. 这是默认值

        RetentionPolicy.RUNTIME:编译器将把注释记录在 class 文件中. 当运行 Java 程序时, JVM 会保留注释. 程序可以通过反射获取该注释
        RetentionPolicy.SOURCE: 编译器直接丢弃这种策略的注释
        @Documented  

            将此注解包含在javadoc中

        @Inherited 

         允许子类继承父类中的注解

      3、注解的元素
        注解元素可使用的类型如下:所有基本的类型(int、float、boolean等)  String   Class   enum   Annotation  及以上类型的数组。
注意:
    Annotation 的成员变量在 Annotation 定义中以 无参数方法的形式来声明. 其方法名和返回值定义了该成员的名字和类型. 
    可以在定义 Annotation 的成员变量时为其指定初始值, 指定成员变量的初始值可使用 default 关键字
    没有成员定义的 Annotation 称为标记; 包含成员变量的 Annotation 称为元数据 Annotation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值