前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Groovy-11.注解

Groovy-11.注解

作者头像
悠扬前奏
发布2019-05-30 20:20:11
5100
发布2019-05-30 20:20:11
举报

学习素材来自W3CSchool,这一节名翻译为"注释",差点跳过。

注解主要有以下作用:

  • 编译器信息:编译器可以通过注解检测错误或者抑制警告
  • 编译时和部署时处理:软件工具可以处理注解信息以生成代码,XML文件等
  • 运行时处理:一些注解可以在运行时检查

基本注解:

  • @interface
  • 注解可以没有主体的方法的形式和可选的默认值来定义成员
字符串注解
代码语言:javascript
复制
@interface Simple { 
   String str1() default "HelloWorld"; 
}
枚举注解
代码语言:javascript
复制
enum DayOfWeek { mon, tue, wed, thu, fri, sat, sun } 
@interface Scheduled {
   DayOfWeek dayOfWeek() 
} 
类注解
代码语言:javascript
复制
@interface Simple {} 
@Simple 
class User {
   String username
   int age
}
 
def user = new User(username: "Joe",age:1); 
println(user.age); 
println(user.username);
注解成员值

使用注解时,需要设置没有默认值的成员值。

代码语言:javascript
复制
@interface Example {
   int status() 
}

@Example(status = 1)
关闭注解参数

可以使用闭包作为注解值。这样,注解可以与各种表达式一起使用。

代码语言:javascript
复制
@interface OnlyIf {
   Class value() 
}  

@OnlyIf({ number<=6 }) 
void Version6() {
   result << 'Number greater than 6' 
} 

@OnlyIf({ number>=6 }) 
void Version7() {
   result << 'Number greater than 6' 
}
元注解

一个方法可以有多个注解,此时可以定义一个元注解,将多个注解集中在一起,用AnnotationCollector来定义注释的集合:

代码语言:javascript
复制
import groovy.transform.AnnotationCollector
  
@Procedure 
@Master 
@AnnotationCollector

@MasterProcedure 
class MyMasterProcedure {}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.05.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串注解
  • 枚举注解
  • 类注解
  • 注解成员值
  • 关闭注解参数
  • 元注解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档