Ole*_*Cat 4 dictionary clojure clojure-java-interop
假设我有以下代码:
(def m1 (java.util.HashMap.))
(def m2 (java.util.LinkedHashMap.))
(def m3 {})
Run Code Online (Sandbox Code Playgroud)
我需要一个能够检测来自java的地图的函数,例如:
(map java-map? [m1 m2 m3]) ;; => (true true false)
Run Code Online (Sandbox Code Playgroud)
什么开箱即用?
你可以map?用来检查某些东西IPersistentMap是否适用于Clojure地图但不适用于java.utils.*地图:
(map? (java.util.HashMap.)) ;; => false
(map? (java.util.LinkedHashMap.)) ;; => false
(map? {}) ;; => true
Run Code Online (Sandbox Code Playgroud)
更确切地说,您应该检查给定对象是否满足某些要求(例如,持久性,不可变/可变性 - map?将回答该特定问题).没有简单的方法可以判断您是否获得了地图的Java实现,因为您可以从外部库获得任何其他实现,这些实现可能具有自定义实现java.util.Map或扩展java.util包中的一个具体实现.
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |