gpt4 book ai didi

clojure - 在 Clojure 中创建 Java 枚举以实现 Java 互操作

转载 作者:行者123 更新时间:2023-12-02 10:57:13 25 4
gpt4 key购买 nike

我不知道如何在 Clojure 中创建 Java 枚举。我想创建一个使用 Java 接口(interface)的 Java 枚举,然后将其传递到 Java 方法中,所有这些都在 Clojure 中进行。我想这样做是为了与 Neo4j 图形库一起使用(我不想使用某人的预构建界面,我想编写自己的互操作代码)。

我在网上搜索了一下,看起来我可以使用代理方法,但我一辈子都无法让它工作。下面是我需要在 Clojure 中编写的等效 Java 代码:

private static enum RelTypes implements RelationshipType
{
KNOWS
}

这是我的尝试(这是不对的:( ):

(proxy [org.neo4j.graphdb.RelationshipType] [] (KNOWS))

我还想知道是否有一个好的网站可以记录我所缺少的此类内容。我了解 Clojure 网站上的 Clojure 文档,这确实很有用,但对于用法示例,我并不总能找到我需要的内容。也许我需要一本好的引用书?

最佳答案

为什么不在 Java 中创建枚举呢?有时回退到 Java 是最简单的答案。

这是一个very old thread关于使用代理来定义 Rich Hickey 和 Stuart Sierra 的枚举以及使用 gen-class 的一些替代方案。我认为代理路径应该适合您:

(proxy [Enum org.neo4j.graphdb.RelationshipType] [ "KNOWS" 1 ])

但这不会生成您希望外部 Java 用户使用的任何内容,在这种情况下,gen-class 可能是更好的解决方案。

关于clojure - 在 Clojure 中创建 Java 枚举以实现 Java 互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207954/

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