gpt4 book ai didi

java - 所有的 clojure 代码都在 java 代理中工作吗?

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:32 25 4
gpt4 key购买 nike

我想知道是否有任何 clojure 代码或宏在嵌入到 java 代码的 clojure 代理中时不起作用,例如:

(proxy [Some Java Interface] []
(some Java Method [args]
...
Clojure code
...
)
)

或者,我能否仅在代理中嵌入对 Java 函数的调用?

最佳答案

任何 Clojure 代码都应该在 proxy 中运行。

在幕后,Clojure 函数无论如何都被编译成 Java 对象,调用 Clojure 函数在技术上就是调用 Java 方法本身。宏扩展仍然可以正常使用 proxy。阅读器宏都可以正常工作等。

user> (defmacro foo [] "FOO")
#'user/foo

user> (.toString (proxy [Object] []
(toString []
(str (foo) \space (reduce + (range 5))))))
"FOO 10"

关于java - 所有的 clojure 代码都在 java 代理中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434067/

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