0
在過去,我已經能夠將Clojure字符串解析爲Java靜態成員
==> ((resolve (symbol "first")) [1 2 3])
1
但它似乎沒有以同樣的方式爲Java靜態成員工作。例如像我有一個enum
這樣在自己的文件:
import org.neo4j.graphdb.RelationshipType;
public enum RelTypes implements RelationshipType {
KNOWS
}
,在我的Clojure代碼(使用Neo4j的)我想:
(defn relate-to
[from to reltype-as-keyword]
(.createRelationshipTo from to
(resolve (symbol (str "RelTypes/" (.toUpperCase (name reltype-as-keyword)))))))
但(resolve (symbol (str "RelTypes/" (.toUpperCase (name reltype-as-keyword)))))
返回nil。
更新:
我看到從another library該reify
可以使用(即,不使用其它地方定義的枚舉,而不是創建在飛行RelationshipType
多個)。
例如
(reify RelationshipType
(^String name [this] "KNOWS"))
但是,您如何通過使用Clojure代碼之外的java文件中定義的枚舉來實現呢?