通过委托对象

时间:2017-09-14 19:06:31

标签: java groovy delegates

有人对以下代码块有什么想法吗?尝试实现接口或抽象类,而不必实际手动键入实现。似乎methodMissing并不能解决问题?可能某种我不知道的委托机制会有所帮助吗?

class Outer {
    private List<String> theStrings = []
    class Inner implements List<String> {
        // error because Inner doesn't truly implement List

        def methodMissing(String name, args) {
            return getTheStrings().invokeMethod(name, args)
        }
    }

    List<String> getTheStrings() {
        return theStrings.collect { it.toUpperCase() }
    }

    void someOtherMethod() {
        List<String> blah = new Inner() // warning for incorrect types without the implements
    }
}

我知道Groovy并没有真正阻止我将Inner类分配给错误类型的对象,但我更想知道是否有&#39; sa正确的方法来做到这一点。例如,在Kotlin中,使用委托属性可以实现by关键字,但我甚至不确定是否适用于此处。

0 个答案:

没有答案