mar*_*son 4 clojure clojure-java-interop
我无法在Clojure中创建Java枚举.我想创建一个使用Java接口的Java枚举,然后将其传递给Java方法,所有这些都在Clojure中.我想这样做是为了使用neo4j图形库(我不想使用某人的预建接口,我想编写自己的互操作代码).
我在互联网上搜索,看起来我可以使用代理方法,但我不能为我的生活让它工作.这是我需要在Clojure中编写的等效Java代码:
private static enum RelTypes implements RelationshipType
{
KNOWS
}
Run Code Online (Sandbox Code Playgroud)
这是我对它的刺痛(这不对:():
(proxy [org.neo4j.graphdb.RelationshipType] [] (KNOWS))
Run Code Online (Sandbox Code Playgroud)
我也想知道是否有一个很好的网站可以记录我所缺少的这类内容.我知道关于Clojure网站上的Clojure文档,这非常有用,但是例如使用我无法总是找到我需要的东西.也许我需要一本好的参考书?
为什么不在Java中创建枚举?有时回到Java是最简单的答案.
这是一个非常古老的线程,关于使用代理来定义Rich Hickey和Stuart Sierra的枚举以及使用gen-class的一些替代方法.我认为代理路径应该适合这样的事情:
(proxy [Enum org.neo4j.graphdb.RelationshipType] [ "KNOWS" 1 ])
Run Code Online (Sandbox Code Playgroud)
但这不会产生任何你想要外部Java用户使用的东西,在这种情况下,gen-class可能是更好的解决方案.