Groovy 注释

注释是元数据的形式,其中它们提供关于不是程序本身的一部分的程序的数据。注释对它们注释的代码的操作没有直接影响。

注释主要用于以下原因 - 

  • 编译器信息 -编译器可以使用注释来检测错误或抑制警告。

  • 编译时和部署时处理 -软件工具可以处理注释信息以生成代码,XML文件等。

  • 运行时处理 -一些注释可以在运行时检查。

在Groovy中,基本注释如下所示:

@interface - at符号字符(@)向编译器指示以下是注释。

注释可以以没有主体的方法的形式和可选的默认值来定义成员。

注释可以应用于以下类型 - 

字符串类型

下面给出了字符串注释的一个例子 - 


1
2
3
@interface Simple {
String str1() default "HelloWorld";
}

枚举类型

1
2
3
4
enum DayOfWeek { mon, tue, wed, thu, fri, sat, sun }
@interface Scheduled {
DayOfWeek dayOfWeek()
}

类型


1
2
3
4
5
6
7
8
9
10
@interface Simple {}
@Simple
class User {
String username
int age
}
def user = new User(username: "Joe",age:1);
println(user.age);
println(user.username);

注释成员值

使用注释时,需要至少设置所有没有默认值的成员。下面给出一个例子。当定义后使用注释示例时,需要为其分配一个值。


1
2
3
4
5
@interface Example {
int status()
}
@Example(status = 1)

关闭注释参数

Groovy中注释的一个很好的特性是,你也可以使用闭包作为注释值。因此,注释可以与各种各样的表达式一起使用。

下面给出一个例子。注释Onlyif是基于类值创建的。然后注释应用于两个方法,它们基于数字变量的值向结果变量发布不同的消息。

1
2
3
4
5
6
7
8
9
10
11
12
13
@interface OnlyIf {
Class value()
}
@OnlyIf({ number<=6 })
void Version6() {
result << 'Number greater than 6'
}
@OnlyIf({ number>=6 })
void Version7() {
result << 'Number greater than 6'
}

元注释

这是groovy中注释的一个非常有用的功能。有时可能有一个方法的多个注释,如下所示。有时这可能变得麻烦有多个注释。

1
2
3
@Procedure
@Master class
MyMasterProcedure {}
在这种情况下,您可以定义一个元注释,它将多个注释集中在一起,并将元注释应用于该方法。所以对于上面的例子,你可以使用AnnotationCollector来定义注释的集合。


1
2
3
4
5
import groovy.transform.AnnotationCollector
@Procedure
@Master
@AnnotationCollector
一旦完成,您可以应用以下元注释器到该方法 - 



1
2
3
4
5
6
7
8
import groovy.transform.AnnotationCollector
@Procedure
@Master
@AnnotationCollector
@MasterProcedure
class MyMasterProcedure {}



联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3