首页 > 其他 > 详细

关于注解的一些基础知识

时间:2021-03-09 18:40:12      阅读:24      评论:0      收藏:0      [点我收藏+]

注解基础知识

一、注解简介

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?枚举类型
以及以上所有的数组形式

关于注解的一些基础知识

原文:https://www.cnblogs.com/Neroblogs/p/14506453.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!