gpt4 book ai didi

java - 匿名内部对象中的 "This"

转载 作者:行者123 更新时间:2023-11-30 11:15:42 26 4
gpt4 key购买 nike

我想编写此 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com