Groovy&Grails-技术问答-Groovy怎么简化Java代码

这个问题用例子是最好解释的,下面就来分别看看使用Groovy和Java编写的读取本地文件的代码

先看看Java代码


package com.example;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class SampleFileReader {
    static public String readFile(File file) {
        StringBuffer contents = new StringBuffer();

        try {
            BufferedReader reader = new BufferedReader(new FileReader(file));

            try {
                String line = null;
                while((line = reader.readLine()) != null) {
                    contents.append(line).append(System.getProperty("line.separator"));
                }
            } finally {
                reader.close();
            }
        } catch (IOException e) {
            contents.append(e.getMessage());
            e.printStackTrace();
        }

        return contents.toString();
    }

    public static void main(String[] args) {
        File file = new File("c:\\temp\\test.txt");
        System.out.println(SampleFileReader.readFile(file));
    }

}

再看看Groovy代码


package com.example

import java.io.File;

f = new File("c:\\temp\\test.txt")
f.eachLine {
    println it
}

看代码量就不用多解释了,可贵的是简化成这样,阅读起来也不难理解。

再看一个无聊的Groovy程序,计算两个数的平均值,这两个数的值差1,如db1=0,db2=1,结果db3=0.5,再固定循环一下


list1=[]
list2=[]
list3=[]

for(element in 0..9) {
    list1 += element
    list2 += element +1 
    list3 += (list1[element] + list2[element]) /2
}

list3.each {
    println it
}

这个程序用Java写其实也不难,Groovy表现出来的主要还是代码简化了,但是可阅读性没有降低。

你可能感兴趣的:(Groovy&Grails-技术问答-Groovy怎么简化Java代码)