注解,是Java语言的一种高级特性。
之前的课程中讲过,可以用public
关键字来控制一个字段能否被其他方法访问。在Java语言中,还有另外一些关键字来控制数据的并发特性。
添加这些关键字的时候,不需要更改原有的定义,只需要添加相应的保留字。如果运行环境多一项功能,就要划定几个关键字,可想而知最后会有多少不能用作变量名的保留字。
因此,Java语言开放了注解功能
后面讲到的JDBC(Spring 框架)会识别预先定义的注解,通过注解来扩展 Java 语言,比如识别数据库的列格式。
以下是注解的示例:
public @interface myAnnotation {
String[] stringlist;
SubAnnotation subAnno;
}
public @interface SubAnnotation {
int value;
}
@myAnnotation
public class Application {
Application(){
}
run(String name){
System.out.println(name + "run");
}
}
注解只能接受一系列字段,而字段的类型可以为以下类型之一:
SomeClass.class
String[]
,不可以用List<String>
代替如果注解没有参数,只用注解名就可以调用注解
@TagAnnotation
interface Race{
}
@myAnnotation(
stringlist = {"bit","nku","buaa"},
subAnno = @SubAnnotation("tju")
)
interface University{
}
@SubAnnotation("demo")
interface Suburb{
}
注解只能依附在以下的位置: | 注解的位置 | Target | | :——-: | :—-: | | 其他注解 | ANNOTATION | | 构造函数 | CONSTRUCTOR | | 字段 | FIELD | | 局部变量 | LOCAL_VARIABLE | | 方法 | METHOD | | 包 | PACKAGE | | 方法或构造函数的参数 | PARAMETER | | 类定义,接口定义 | TYPE | | 泛型的类型参数 | TYPE_PARAMETER | | 定义变量或者参数时,注解依附在参数类型前 | TYPE_USE |
包注解只能在package
语句下定义
@PackageAnno package cn.edu