Groovy优势2——使用call方法
来源:互联网 发布:大数据开发视频教程 编辑:程序博客网 时间:2024/04/30 14:22
Groovy优势2——使用call方法
在Groovy中我们给类可以增加call方法,然后隐式调用call方法。调用时,仅需输入括号和可选的参数,使用Groovy 写DSL尤其有用。同时可以增加多个带不同参数的call方法实现重载,在运行时根据参数决定。
代码示例
下面示例代码定义了User类,带了call方法的实现。调用时并没有输入方法的名称,甚至没有使用括号,仅传递参数。
class User { String userName; String address; def call(final String userName){ this.userName = userName this } def call(final Map data){ userName = data.get("userName") ?: userName address = data.get("address") ?: address this } def call(final Closure runCode){ runCode this } static void main(String [] args){ User user = new User( userName:"tommy",address:"xuzhou") user "jack" assert user.userName == "jack" // call with string parameter Map data = [userName:"tommy",address:"shanghai"] user data // call with map parameter assert "tommy" == user.userName assert "shanghai" == user.address //true user{ println it.address // shanghai call with Closure } //call with Closure def json = user { new groovy.json.JsonBuilder(["user": ["name": it.userName, "address": it.address]]).toString() } assert json == '{"user":{"name":"tommy","address":"shanghai"}}' }}
1 0
- Groovy优势2——使用call方法
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法’的使用
- Groovy高效编程——‘匕首方法'
- call 方法的使用
- Groovy高效编程——‘匕首方法’的使用(更新于2007.09.14)(转载)
- groovy优势:自定义动态Bean
- 12.1Groovy使用GroovyInterceptable拦截方法
- 12.2Groovy使用MetaClass拦截方法
- 13.2Groovy使用ExpandoMetaClass注入方法
- Groovy学习笔记——用inject方法构造Map
- JS call方法的使用
- javascript中call方法使用
- centos7.2安装maridb和开启3306端口
- EDN一名硬件工程师发展规划一
- 博客网站(3)-配置URL
- 华为oj初级 记票统计
- android高仿微信表情输入与键盘输入(详细实现分析)
- Groovy优势2——使用call方法
- LR(四)关联
- android开发第二站UI布局(2)-----手机信息页面
- audio标签
- 未能加载文件或程序集“MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。
- Unity3D_uGUI学习笔记(3)_Visual Component简述
- 详谈内存管理技术(三)、线程模型
- RxJava2 vs RxJava1
- 详情和概要标签