zoukankan      html  css  js  c++  java
  • Groovy学习()面向Java开发者的Groovy

    第一段Groovy代码

    // first groovy program
    for(int i = 0; i < 3; i++) {
        System.out.println("ho ");
    }
    
    System.out.println("Merry Groovy");

    看起来好简单。

    还有更简单的方式:

    for (i in 0..2) { print 'ho '}
    0.upto(2) { print "$it "}

    upto默认接受一个闭包作为参数,如果闭包只需要一个参数,在Groovy中可以使用名字it来表示该参数。

    如果范围从0开始,还可以使用times

    3.times { print "$it " }

    Groovy没有强迫使用一组新的类库,而是可以通过向JDK的各种类添加便捷方法,Groovy扩展了强大的JDK。

    比如调用系统命令

    println "groovy.bat -v".execute().text

    这里的bat不能省略,奶奶的。

    或者可以这样

    println "groovy.bat -v".execute().text
    println "cmd /C groovy -v".execute().text
    def foo(str) {
        // if (str != null) { str.reverse(); }
        print str?.reverse()
    }
    
    foo('evil')
    print '
    '
    foo(null)

    Java强制我们处理所有的受检查异常(Checked Exception)。

    对于那些我们不想处理,或者不适合在代码的当前层次处理的异常,Groovy并不强制我们处理。

    我们不处理的任何异常都会被自动传递到更高一层去。

    // 定义打开文件
    def openFile(fileName) {
        new FileInputStream(fileName)
    }
    
    try {
        openFile("nonexistentFile")
    } catch (FileNotFoundException ex) {
        println "Oops: " + ex
    }

    注意,这里不能捕获Exception之外的Error或Throwable。要捕获这些请用catch(Throwable throwable)

    class Car {
        def miles = 0
        final year
    
        Car(theYear) {
            year = theYear
        }
    }
    
    Car car = new Car(2008)
    
    println "Year: $car.year"
    println "Miles: $car.miles"
    car.miles = 25
    println "Miles: $car.miles"

    看起来好简单的样子啊。

    JVM不愧是宇宙第一虚拟机。

    如果属性给了final,那么只会提供访问器,而不会提供更改器。

    修改final字段的任何尝试都会导致异常。

    请谨慎使用class属性,像Map、生成器等一些类对该属性有特殊的处理。因此为了避免意外,一般使用getClass,而不是class。

  • 相关阅读:
    分布式系统唯一ID生成方案汇总
    百度开源的分布式 id 生成器
    全局唯一ID生成器
    VisualSVN Server迁移的方法
    SQL Server 函数 LEN 与 DATALENGTH的区别
    SQLServer中DataLength()和Len()两内置函数的区别
    sql server 查询ntext字段长度
    JAVA使用POI如何导出百万级别数据
    Java 使用stringTemplate导出大批量数据excel(百万级)
    Java 两个日期间的天数计算
  • 原文地址:https://www.cnblogs.com/tuhooo/p/8695235.html
Copyright © 2011-2022 走看看