JAVA注解的使用

JDK中预定义的一些注解
@Oerride:检测被该注解标注的方法是否是继承父类(接口)的
@Deprecated:标记一个已经过时的方法
@SuppressWarnings:压制警告

自定义注解
格式:
元注解
public @interface 注解名称{}

本质: 注解本质上就是一个接口该接口默认继承Annotation接口
属性: 接口中的抽象方法
要求:

  1. 属性的返回值类型

               基本数据类型
               String
               枚举
               注解
               以上类型的数组
    
  2. 定义了属性,在使用时需要给属性赋值
    1.如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
    2.如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可
    3. 数组赋值时。值使用{}包裹。如果数组中只有一个值,则{}省略 元注解:用于描述注解的注解 @Target
    用来定义注解的使用范围
    ElementType.ANNOTATION_TYPE 用在注解中
    PACKAGE 用在包中
    TYPE 用在类型上
    CONSTRUCTOR 用在构造方法上
    FIELD 用在属性上
    METHOD 用在方法上

    	@Retention 用来定义注解的存在时间
        			RetentionPolicy.SOURCE  注解只存在于源代码中,编译成class的时候会丢弃注解
       			 RetentionPolicy.CLASS   注解存在于class文件中,在加载到JVM中的时候会丢弃注解
        			RetentionPolicy.RUNTIME  注解在程序运行中依然存在
    
    
    	@Documented  注解文档化
    
    	@Inherited 是否能被子类自动继承 	 	
    

3.在程序中使用注解
定义

@Target({ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
	String value();
}

使用

public class Student {
    @MyAnnotation("张三")
    private String name;
    public void play(){
        System.out.println(name+"在打游戏");
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                '}';
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值