Java基础知识之注解Annotation

本文详细介绍了Java注解的概念、作用、类型以及使用方法,包括基本注解、元注解、注解的生命周期和注解的成员等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 注解的概念

注解Annotation是JDK 5.0之后推出的一个新的特新,注解是Java的一个新特性,和类,接口,枚举在同一层次上。主要作用是文档编制,编译检查,代码分析。

元数据:Java的注解,数据的数据

2 JDK的基本注解

@SuppressWarnings:阻止编译器发出某些警告信息

deprecation:过时的类或者方法的警告

unchecked:执行了没检查的转换的警告

fallthrough,path,serial,finally,all

@deprecated:标记某个过时的类或者方法

@Override:重载

3 元注解

专门负责注解其他的注解

@Target:用来标明注解可以放在那些元素之前

ElementType.TYPE:注解只能被声明在一个接口,类前面

ElementType.FIELD:注解只能声明在一个字段前面

ElementType.METHOD:直接只能声明在一个方法前面

ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前

ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前

ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前ElementType.PACKAGE:说明该注解只能声明在一个包名前ElementType.PACKAGE:说明该注解只能声明在一个包名前
ElementType.PACKAGE:说明该注解只能声明在一个包名前
@Retention:它是被定义在一个注解类的前面,用来说明该注解的生命周期

RetentionPolicy.SOURCE:指定注解只保留在一个源文件当中

RetentionPolicy.CLASS:指定注解只保留在一个 class 文件中

RetentionPolicy.RUNTIME:指定注解可以保留在程序运行时
@Documented:

目的就是让这一个 Annotation 类型的信息能够显示在 javaAPI 说明文档上;没有添加的话,使用 javadoc 生成 API 文档的时候就会找不到这一个类型生成的信息
@Inheried:允许子类继承父类中的注解

public @interface Annotation01
{
	//定义公共的 final 静态属性
	……
	//定义公共的抽象方法
	……
}


注解的成员:注解和接口相似,只能定义final静态属性没和公共抽象方法

注解的方法:
方法前默认会加上 public  abstract
在声明方法时可以定义方法的默认返回值,如:

String  color()  default  “blue”;

String  color()  default  {“blue”, “red”, ……}
方法的返回值的类型:可以有8种基本类型(byte, short, int, long, float, double, boolean, char,)、String、Class、枚举、注解及这些类型的数组

注解的使用分为三个过程:定义注解-->声明注解-->得到注解

定义注解:

声明注解

在哪些元素上声明注解:

对注解的方法的返回值进行赋值:对于注解中定义的每一个没有默认返回值的方法,在声明注解时必须对它的每一个方法返回值进行赋值。
 一般形式:@注解名(方法名=方法返回值, ……)
 如果方法返回的是一个数组时,那么将方法返回值写在{}符号里
 @注解名(方法名={返回值1, 返回值2, ……}, ……)

得到注解:对于生命周期为运行期间的注解,都可以通过反射获得该元素上的注解实例
 1、声明在一个类中的注解:可以通过该类 Class 对象的 getAnnotation 或 getAnnotations 方法获得
 2、声明在一个字段中的注解:通过 Field 对象的 getAnnotation 或 getAnnotations 方法获得
 3、声明在一个方法中的注解: 通过 Method 对象的 getAnnotation 或 getAnnotations 方法获得
注解可以看成是一个接口,注解实例就是一个实现该接口的动态代理类。

注解大多是用做对某个类、方法、字段进行说明,标识的。以便在程序运行期间我们通过反射获得该字段或方法的注解的实例,来决定该做些什么处理或不该进行什么处理


注解可以看成是一个接口,注解实例就是一个实现该接口的动态代理类。String  color()  default  {“blue”, “red”, ……}
String  color()  default  {“blue”, “red”, ……}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值