习惯用法在groovy中选择类构造函数

时间:2018-02-20 01:07:54

标签: groovy

我有一个这样的课程:

在foo.groovy

class Foo {

    String thing
    Integer other

    Foo(String thing) {
        this.thing = thing
    }

    Foo(Integer other) {
        this.other = other
    }
}
return Foo.class

现在我想调用这些构造函数。我在做的是:

Other.groovy

def foo = evaluate(new File(ClassLoader.getSystemResource('foo.groovy').file)).newInstance(10)
def foo2 = evaluate(new File(ClassLoader.getSystemResource('foo.groovy').file)).newInstance("thing")

但这似乎不是正确的做法。理想情况下,我想实际命名文件Foo.groovy,但后来我收到错误,因为它会自动为我声明类。基本上,我希望它像经典的Java类一样工作

1 个答案:

答案 0 :(得分:0)

也许我在这里遗漏了一些东西,但是:

class Foo {      
    String thing     
    Integer other      

    Foo(String thing) {         
        this.thing = thing     
    }      
    Foo(Integer other) {         
        this.other = other     
    } 
}

def x = new Foo(10)
assert x.other == 10 // true

def y = new Foo("foo")
assert y​​​​.thing​ == "foo"​​ // true

除了那之外,你还想在这里完成什么?

修改:Try it here