Groovy代码示例 – groovy包(package)的导入

包的导入

为了可以使用其他类,groovy提供了与java包导入一样的功能。

比如,groovy提供了好几个builder类,比如:MarkupBuilder类,MarkupBuilder类在groovy.xml包下面,为使用该类,我们需要导入这个包。

//导入类MarkupBuilder
import groovy.xml.MarkupBuilder

//使用导入的类创建对象
def xml = new MarkupBuilder()

assert xml != null

默认的导入

groovy为所有的类默认导入了这些包。

import java.lang.*
import java.util.*
import java.io.*
import java.net.*
import groovy.lang.*
import groovy.util.*
import java.math.BigInteger
import java.math.BigDecimal

对于默认已经导入的包,可以直接实例化包下面的类。

简单导入

简单导入指的是把类的完整类路径直接导入,比如:groovy.xml.MarkupBuilder

// importing the class MarkupBuilder
import groovy.xml.MarkupBuilder

// using the imported class to create an object
def xml = new MarkupBuilder()

assert xml != null

星号导入

groovy跟java一样支持通过星号的方式导入某个包下的所有类。

// importing the class MarkupBuilder
import groovy.xml.*

// using the imported class to create an object
def xml = new MarkupBuilder()

assert xml != null

静态导入

像java一样可以导入类的静态方法,然后可以像使用本地方法那样去使用它。与java不同的是,groovy允许导入名称相同类型不同的方法,如果有名称和类型都相同的导入方法,那么导入的方法将优先。

import static Boolean.FALSE
assert !FALSE //use directly, without Boolean prefix!

静态星号导入

静态导入也是可以支持星号导入的,可以导入一个类的所有静态方法

import static java.lang.Math.*

assert sin(0) == 0.0
assert cos(0) == 1.0

导入的别名

可以使用as关键字将完整的类名建立一个别名,然后可以通过这个自定义的别名去使用它。

package thirdpartylib

public class MultiplyTwo {
    def static multiply(def value) {
        return value * 3 //intentionally wrong.
    }
}

假定我们已经有一段代码如下:

def result = new MultiplyTwo().multiply(2)

因为名字相同,导致结果不是预期的。groovy为我们提供了一个优雅的方法在不改变外部类(thirdpartylib.MultiplyTwo)的基础保证我们代码逻辑的正确,参考以下代码:

import thirdpartylib.MultiplyTwo as OrigMultiplyTwo

class MultiplyTwo extends OrigMultiplyTwo {
    def multiply(def value) {
        return value * 2 // fixed here
    }
}

// 仍然可以使用MultiplyTwo,注意这里的MultiplyTwo不是我们导入的,导入的已经使用别名了,不会冲突
def multiplylib = new MultiplyTwo()

// assert passes as well
assert 4 == new MultiplyTwo().multiply(2)

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/05/07/groovy-code-example-package-import/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Groovy代码示例 – groovy包(package)的导入
包的导入 为了可以使用其他类,groovy提供了与java包导入一样的功能。 比如,groovy提供了好几个builder类,比如:MarkupBuilder类,MarkupBuilder类在groovy.……
<<上一篇
下一篇>>
文章目录
关闭
目 录