- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Groovy用户指南
1、类
(1)类
l Groovy 的类定义和Java 类似
方法可以基于类(static )或实例
可以为public、protected 或private
支持常用 Java 修饰符,如synchronized
l Groovy 的不同地方:缺省是public
l Groovy 支持JavaBean 机制:GroovyBean
l 每个Groovy 类都是字节码/JVM 级 Java 类,任何方法对Java 都是有效 ,反之
亦然
l 你可以指定方法 参数类型和返回类型,这样可以在通常 Java 代码中更好 工作
l 你可以用上面 方式来实现接口或重载方法
l 如果省略方法 类型,就会使用缺省 j ava.lang.Obje ct
(2)脚本
l Groovy 支持纯脚本,而不需要声明类,如Foo.groovy 包含下面的脚本:
println Nice cheese Gromit!
l 运 脚本 过程:
编译成Foo.class (还会有一些内类),该类扩展groovy.lang.Script
执行自动生成 main 方法
实例化Foo 类
调用run 方法执行脚本内容
l 可以在Java 代码中执 脚本,同时还可以传递变量值到脚本中
l Foo.groovy 内容修改如下
println Nice ${cheese} Gromit!
l 下面是执 脚本 UseFoo 类
import groovy.lang.Binding;
import groovy.lang.Script;
public class UseFoo {
public static void main(String[] args) {
Binding binding = new Binding();
binding.setVariable(cheese, Cheddar);
Script foo = new Foo(binding);
foo.run();
}
}
l UseFoo 运 结果是:Nice Cheddar Gromit!
l 执 脚本的方法是创建Foo 类实例,调用其run 方法
l Foo 类有一个带Binding 参数 构造函数,可以通过Binding 类 setVariable 方法
设置值给脚本中 属性变量
l Foo 类有一个不带参数 构造函数,在不传递属性变量值时使用
l 在脚本结束后,脚本中创建的任何变量都会在Binding 中,以供在Java 中访问
l 再将Foo.groovy 内容修改如下
println Nice ${cheese} Gromit!
cheese = changed
l UseFoo 类修改为:
import groovy.lang.Binding;
import groovy.lang.Script;
public class UseFoo {
public static void main(String[] args) {
Binding binding = new Binding();
binding.setVariable(cheese, Cheddar);
Script foo = new Foo(binding);
foo.run();
println binding.getVariable(cheese);
}
}
l UseFoo 运 结果是:
Nice Cheddar Gromit!
changed
(3)脚本中的函数
l 不同于基于Class Groovy,纯脚本中 函数用def 关键字声明
def foo (list, value) {
println Calling function foo() with param $ {value}
list value
}
x = []
foo(x, 1)
文档评论(0)