zoukankan      html  css  js  c++  java
  • Groovy学习:第一章 用Groovy简化Java代码

    1. Groovy的安装

    目前Groovy的最新版本为2.1.2版,下载地址为:http://groovy.codehaus.org/Download
    下载后解压groovy-binary-2.1.2.zip到某个目录,然后设置GROOVY_HOME环境变量指向Groovy的解压目录。
    再设置PATH环境变量,添加%GROOVY_HOME%in。
    要验证以上安装是否正确,在命令行方式,执行:

    >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再进一步简化代码

    执行结果仍然一样。
    可见,
    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语言的关键特征。

    http://blog.csdn.net/chszs/article/details/8757961

  • 相关阅读:
    Ubuntu 安装mono
    关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN
    android 常用框架
    理解assign,copy,retain变strong
    SQLSERVER2008R2正确使用索引
    除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。目前,这两项服务均处于停止状态。
    Android资源命名规范
    eclipse导入Android项目后,项目的名称变为了主Activity的名称
    日常运维管理技巧一(查看负载 W)
    Shell简介:1分钟理解什么是Shell 脚本语言 解释器 以及编译器和编译语言
  • 原文地址:https://www.cnblogs.com/itommy/p/10610355.html
Copyright © 2011-2022 走看看