作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写此 java 代码的 groovy 版本:
class HelloWorld {
static main(args) {
def server = Server.builder()
.setHandler(new HttpHandler() {
public void handle(final Ev ev){
ev.dispatch(this)
}
}
}).build()
server.start()
}
}
我生成的 groovy 代码是:
class HelloWorld {
static main(args) {
def server = Server.builder()
.setHandler(new HttpHandler() {
public void handle(final Ev ev){
ev.dispatch(this)
}
}
}).build()
server.start()
}
}
问题来自 ev.dispatch(this):ev.dispatch 需要一个 HttpHandler 对象,但是 groovy 中的“this”,即使对其进行类型转换,也不会生成 HttpHandler 对象。
我尝试用“委托(delegate)”或“所有者”替换“this”,但没有任何改变。
我试图用闭包替换 anonim 内部类,但没有不同的 esit:
class HelloWorld {
static main(args) {
def server = Server.builder()
.setHandler({ ev ->
public void handle(final Ev ev){
ev.dispatch(this)
}
} as HttpHandler
).build()
server.start()
}
}
有什么建议吗? (使用常规 2.3.6)
最佳答案
下面有2个问题:
class HelloWorld {
static main(args) {
def server = Server.builder()
.setHandler(new HttpHandler() {
public void handle(final Ev ev){
ev.dispatch(this)
}
}
}).build()
server.start()
}
}
一个是匿名内部类定义中的花括号不匹配。当应该只有 2 个时,却有 3 个连续的右大括号 (})。
另一个似乎是 Groovy 中的错误。参见 https://jira.codehaus.org/browse/GROOVY-7020 .
关于java - 匿名内部对象中的 "This",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233327/
我是一名优秀的程序员,十分优秀!