【发布时间】:2011-10-25 20:36:30
【问题描述】:
如何在 Groovy 中定义匿名内部类?我看到他们应该在 Groovy 1.7 中得到支持的参考资料,而我正在使用 1.8。
thread = process.consumeProcessOutput(
new Appendable() {
Appendable append(char c) {
app1.append(c)
app2.append(c)
return this
}
Appendable append(CharSequence csq) {
app1.append(csq)
app2.append(csq)
return this
}
Appendable append(CharSequence csq, int start, int end) {
app1.append(csq, start, end)
app2.append(csq, start, end)
return this
}
})
这段代码出现异常:
Caught: groovy.lang.MissingMethodException: No signature of method: java.lang.UNIXProcess.consumeProcessOutput() is applicable for argument types: (MyClass$1) values: [MyClass$1@19c8ef56]
【问题讨论】:
-
那么consumeProcessOutput 需要什么类型?是 Appendable 接口吗?
-
我认为描述您的问题的术语称为“关闭”...
-
它接受 Appendable 和 OutputStream
-
在这种情况下闭包如何工作?
-
我发现了问题:正确的方法是consumeProcessOutputStream()。
标签: groovy