注解基础知识

注解基础知识

一、注解简介

1.注解,或者叫注释,英文单词是:Annotation

2.注解是一种引用数据类型。编译之后也是生成

xxx.class文件

3.自定义注解:语法格式

[修饰符列表] @interface 注解类型名{

}

注:注解和注释的区别
注解:是给编译器看的,如果不合法,编译器会报错
注释:是给程序员看的,提高程序的可读性

4.默认情况下,注解可以出现在任何位置。

二、元注解

1.什么是元注解?

  用来标注 注解类型 的注解。

2.常见的元注解

 @Target

用法:@Target(ElementType.METHOD)
作用:表示“被标注的注解只能出现在方法上”

取值ElementType有
TYPE—>用于描述类、接口、enum声明等
FIELD—>用于描述域
METHOD—>用于描述方法
CONSTRUCTOR—>用于描述方法
PARAMETER—>用于描述参数
LOCAL_VARIABLE—>用于描述局部变量
PACKAGE—>用于描述包

 @Retention

用法:@Retention(RetentionPolicy.SOURCE)
作用:表示被标注的注解只被保留在java源文件中

取值RetentionPolicy有
SOURCE—>表示被标注的注解只被保留在java源文件中
CLASS—>表示该注解被保存在class文件中
RUNTIME—>表示该注解被保存在class文件中,并且可以被反射机制所读取

注意:若一次性需要多个属性,需用{}括起来

// 示例
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})

三、关于注解的使用

如果一个注解当中有属性,那么必须给这个属性赋值(除非该属性使用***default***指定了默认值)

public @interface MyAnnotation {
    /**
     * 我们通常在注解中可以定义属性,以下这个是MyAnnotation的name属性
     * 看着像一个方法,但实际上我们称之为属性name
     */
    String  name();

    String color();

    int age() default 25;// 属性指定默认值
}

注解当中的属性可以是哪种类型呢?
byte short int long double boolean char String Class 枚举类型
以及以上所有的数组形式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值