有人对以下代码块有什么想法吗?尝试实现接口或抽象类,而不必实际手动键入实现。似乎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
关键字,但我甚至不确定是否适用于此处。