zoukankan      html  css  js  c++  java
  • 用Groovy思考 第一章 用Groovy简化Java代码

    用Groovy思考  第一章 用Groovy简化Java代码

    作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

    1. Groovy的安装

    目前Groovy的最新版本为2.1.2版,下载地址为: http://groovy.codehaus.org/Download

    下载后解压groovy-binary-2.1.2.zip到某个目录,然后设置GROOVY_HOME环境变量指向Groovy的解压目录。

    再设置PATH环境变量,添加%GROOVY_HOME%\bin。

    要验证以上安装是否正确,在命令行方式,执行:

    >groovy -v
    Groovy Version: 2.1.2 JVM: 1.7.0_09 Vendor: Oracle Corporation OS: Windows 7


    表示Groovy安装成功。

    2. Groovy的第一个例子

    我们先写一个Java类Todo.java,内容如下:

    import java.util.List;
    import java.util.ArrayList;
    
    
    public class Todo{
    	private String name;
    	private String note;
    
    
    	public Todo(){}
    
    
    	public Todo(String name, String note){
    		this.name = name;
    		this.note = note;
    	}
    
    
    	public String getName(){
    		return name;
    	}
    
    
    	public void setName(String name){
    		this.name = name;
    	}
    
    
    	public String getNote(){
    		return note;
    	}
    
    
    	public void setNote(String note){
    		this.note = note;
    	}
    
    
    	public static void main(String[] args){
    		List<Todo> todos = new ArrayList<Todo>();
    		todos.add(new Todo("1", "one"));
    		todos.add(new Todo("2", "two"));
    		todos.add(new Todo("3", "three"));
    
    
    		for(Todo todo : todos){
    			System.out.println(todo.getName() + " " + todo.getNote());
    		}
    	}
    }


    我们用javac编译它,用java运行它,一切正常。现在,我们把Todo.java改名为Todo.groovy,然后执行:

    > groovy Todo.groovy


    我们会惊异地发现,与Java的执行结果一样。

    结论:Groovy是兼容Java的。

    运行Java持续有两步:用javac编译类文件,然后用java在JVM上执行编译后的字节码文件。
    而Groovy是在运行时编译字节码文件,在开发中节省了编译这个步骤。

    3. 用Groovy简化Java代码

    下面,我们用Groovy简化JavaBean为GroovyBean。

    import java.util.List;
    import java.util.ArrayList;
    
    
    public class Todo{
    	String name;
    	String note;
    
    
    	public static void main(String[] args){
    		List<Todo> todos = new ArrayList<Todo>();
    		todos.add(new Todo(name:"1", note:"one"));
    		todos.add(new Todo(name:"2", note:"two"));
    		todos.add(new Todo(name:"3", note:"three"));
    
    
    		for(Todo todo : todos){
    			System.out.println(todo.name + " " + todo.note);
    		}
    	}
    }


    执行结果仍然一样。

    可见,
    1)省略了JavaBean的getter和setter方法;
    2)默认情况,所有的类属性都是public的;
    3)构造函数很有特色,Map方式。

    4. 用Groovy再进一步简化代码

    public class Todo{
    	String name
    	String note
    
    
    	public static void main(String[] args){
    		def todos = new ArrayList()
    		todos.add(new Todo(name:"1", note:"one"))
    		todos.add(new Todo(name:"2", note:"two"))
    		todos.add(new Todo(name:"3", note:"three"))
    		for(Todo todo : todos)
    			println "${todo.name} ${todo.note}"
    	}
    }


    执行结果仍然一样。
    可见,
    1)List和ArrayList省略了类型;
    2)省略了分号;
    3)打印语句省略了System.out。

    5. 用Groovy再进一步省略main()函数

    public class Todo{
    	String name
    	String note
    }
    def todos = [
    	new Todo(name:"1", note:"one"),
    	new Todo(name:"2", note:"two"),
    	new Todo(name:"3", note:"three")
    ]
    todos.each{
    	println "${it.name} ${it.note}"
    }


    此代码在groovyconsole控制台运行正常。

    看了以上内容,你们对Groovy有什么看法?下一节我们将介绍Groovy语言的关键特征。

  • 相关阅读:
    3、tensorflow变量运算,数学运算
    2、tensorflow 变量的初始化
    1、tensorflow 框架理解
    tensorflow 打印全部变量的一种方法
    0、tensorflow学习开始
    tensorflow 小记——如何对张量做任意行求和,得到新tensor(一种方法:列表生成式)
    SASRec 实践
    jupyterlab 增加新内核的方法ipykernel
    vivo 全球商城:架构演进之路
    jenkins安装 git免密ssh配置
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2999233.html
Copyright © 2011-2022 走看看