`
JohnnyJian
  • 浏览: 106056 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Groovy学习笔记——使用with方法减少代码

阅读更多
假设我们有这样的代码:
class Test {
    def fun1() { println 'a' }
    def fun2() { println 'b' }
    def fun3() { println 'c' }
}
def test = new Test()
test.fun1()
test.fun2()
test.fun3()

我们可以通过Object上的with方法省去test对象的限定:
test.with {
    it.fun1()
    it.fun2()
    it.fun3()
}
// 或者连it也省去
test.with {
    fun1()
    fun2()
    fun3()
}

我们可以从Groovy的源代码中看到这是如何实现的,在org.codehaus.groovy.runtime.DefaultGroovyMethods中:
    public static Object with(Object self, Closure closure) {
        final Closure clonedClosure = (Closure) closure.clone();
        clonedClosure.setDelegate(self);
        return clonedClosure.call(self);
    }

可以看出这是通过把对象赋值给闭包的delegate属性和作为参数传递给闭包来实现的。
分享到:
评论
1 楼 RayChase 2008-10-27  
恩 有收获~

相关推荐

    Groovy学习笔记 PDF版

    在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...

    Java JDK 6学习笔记——ppt简体版附课本代码

    总的来说,“Java JDK 6学习笔记——ppt简体版”全面介绍了Java编程语言的基础知识和JDK 6的关键特性,结合配套的代码示例,是系统学习和掌握Java开发的宝贵资料。无论你是Java初学者还是寻求提升的老手,都能从中...

    Groovy 学习笔记

    5. **运算符重载和方法默认参数**: Groovy允许操作符重载和方法定义默认参数,增强了代码的可读性和灵活性。 **二、Groovy与Java的交互** 1. **类和接口**: Groovy可以创建Java兼容的类和接口,因此可以直接与Java...

    Java JDK 6学习笔记——ppt简体版.rar

    通过"Java JDK 6学习笔记——ppt简体版",学习者可以系统地学习到如何使用JDK 6进行开发,包括环境配置、基本语法、类库使用、异常处理、IO流、网络编程、多线程等各个方面。PPT格式通常直观易懂,便于快速理解和...

    Groovy轻松入门——Grails实战基础篇

    ### Groovy轻松入门——Grails实战基础篇 #### 搭建Grails环境及创建Grails Demo程序 **Groovy**是一种面向对象的编程语言,它运行于Java平台上,能够与Java代码无缝集成。而**Grails**则是一款基于Groovy的高性能...

    Groovy学习笔记.pdf

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。

    Groovy学习笔记

    ### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...

    groovy学习笔记

    以下是对Groovy学习笔记各章节的详细解释: ### 第1章:数字和字符串 在Groovy中,所有的数字都是Object类型的,这意味着你可以在对象上调用方法。例如,你可以直接在数字上使用加减乘除等运算符,如`12 + 8`。...

    Java JDK 6学习笔记——ppt简体版

    本篇学习笔记将围绕Java JDK 6的关键特性、语法改进、API更新以及开发实践进行详细讲解。 1. **Java JDK 6概述** - JDK(Java Development Kit)是Java开发的核心组件,包含了Java运行环境(JRE)、编译器(javac...

    Groovy学习笔记 Struts2集成--Groovy类作为Action

    通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...

    Groovy need not rails——介绍自己写的一个基于groovy的框架,Webx

    通过深入学习和使用Webx,开发者可以充分利用Groovy的灵活性和生产力优势,同时享受到类似Rails的开发体验,而不必受限于Ruby语言。由于与Java平台的紧密集成,Webx还能够利用丰富的Java生态系统,为大型企业级应用...

    Groovy 学习资料

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要面向开发者的工具,尤其在敏捷开发中备受青睐。...通过深入学习和实践,你将能充分利用Groovy的强大功能,提升你的开发效率和代码质量。

    groovy和Java相互调用1

    这种方法的优点是Groovy脚本的修改不需要重新编译整个项目,因为Java代码可以通过反射动态地找到并调用Groovy方法。这里,我们首先创建一个`GroovyClassLoader`来解析Groovy源文件,然后通过`newInstance`方法实例化...

    Java中使用Groovy的三种方式

    与Java的Spring Boot框架结合使用时,Groovy可以作为Spring Boot的源代码语言,提供更加简洁的配置和更快的开发速度。Groovy的动态性使得编写Spring配置和Bean定义更加直观,而Spring Boot的"约定优于配置"理念与...

    JVM 动态执行Groovy脚本的方法

    本文将详细讲解如何使用JVM动态执行Groovy脚本的方法,主要包括利用JShell执行代码、调试模式下动态执行代码以及利用javax.script包执行Groovy脚本。以下是对各知识点的详细说明。 1. 利用JShell执行代码 Java 9 ...

    Groovy安装以及简单使用

    安装完成后,我们可以使用`groovysh`命令启动一个交互式的Groovy shell,或者通过`groovyConsole`启动Groovy脚本控制台,这为测试和调试Groovy代码提供了便利。此外,`groovy -version`命令可以验证Groovy是否正确...

    Groovy学习资料

    最后,学习Groovy的最佳实践,如如何有效地利用元编程,何时使用静态类型以提高性能,以及如何编写易于理解和维护的代码,这些都是提升Groovy开发技能的重要部分。 通过深入学习和实践这份"Groovy学习资料"中的内容...

Global site tag (gtag.js) - Google Analytics