有没有办法模仿地图,如访问(使用括号)来获取任意对象的方法

时间:2017-09-25 16:54:25

标签: groovy

在groovy中是否有一种方法可以使用括号来访问get函数,就像使用map一样?像这样:

class Foo<V> {
    String bar = "Bar:"

    V get(Object lal) {
        return bar + lal
    }
}

def f = new Foo()
println(f["xxx"])

PS我想避免扩展整个Map界面。

1 个答案:

答案 0 :(得分:2)

它的工作原理如下:

class Foo {
    String bar = "Bar:"

    def getAt(String lal) {
        return bar + lal
    }

    def getAt(int i) {
        return bar + i
    }
}

def f = new Foo()
println(f["xxx"])
println(f[0])

您需要传递具体的对象类。