3 clojure
我有这段Java代码
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
System.out.println("Hello World");
}
});
Run Code Online (Sandbox Code Playgroud)
我想把它转换成Clojure.
(. btn setOnAction (proxy .... ????? .... ))
Run Code Online (Sandbox Code Playgroud)
如何在Clojure中处理EventHandler部分?我相信这是一个Java模板.如何在Clojure中创建模板化对象?
在Java中,它们被称为泛型,而不是模板.此外,它们是使用类型擦除实现的,即在编译的字节码中没有通用信息,因此EventHandler<Foobar>对象被编译为非泛化的EventHandler实例.
也就是说,Clojure甚至都没有尝试过支持他们.您的Java代码转换为
(.setOnAction btn
(proxy [EventHandler] []
(handle [event]
(println "Hello World"))))
Run Code Online (Sandbox Code Playgroud)
有关语法的更多详细信息,请参阅Java interop上proxy和文档上的文档.