簡體   English   中英

如何從Java中查找IPersistentMap中的Clojure關鍵字?

[英]How do I look up a Clojure keyword in IPersistentMap from Java?

從Java程序調用Clojure庫。 我得到了一個IPersistentMap。

鍵是Clojure關鍵字,如:名稱等。

但似乎我不能只做一個

map.valAt(":name");

用Java來解決它。 我猜這是因為鍵不是普通的java字符串。 那他們是什么? 如何從IPersistentMap中提取數據?

您不需要使用閱讀器。 Clojure關鍵字的類型為clojure.lang.Keyword 您可以使用靜態方法intern創建一個:

map.valAt(clojure.lang.Keyword.intern("name")); // Note: no leading colon

你嘗試過使用Clojure.read嗎? =>

map.valAt(Clojure.read(":name"))

或者=> // (:name my-map) myMap.invoke(Clojure.read(":name"));

Clojure 1.6 Java API https://github.com/clojure/clojure/blob/master/changes.md#21-java-api

Clojure的JavaDoc https://clojure.github.io/clojure/javadoc/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM