我正在尝试过滤掉值小于零的地图条目:
(filter #(< 0 (.getValue %)) map)
Java 地图在哪里map
(的实例HashMap
)。我越来越
actual: java.lang.NullPointerException: null
at clojure.lang.Reflector.invokeInstanceMethod (Reflector.java:26)
我究竟做错了什么?
我正在尝试过滤掉值小于零的地图条目:
(filter #(< 0 (.getValue %)) map)
Java 地图在哪里map
(的实例HashMap
)。我越来越
actual: java.lang.NullPointerException: null
at clojure.lang.Reflector.invokeInstanceMethod (Reflector.java:26)
我究竟做错了什么?
你确定这map
是一个实例HashMap
吗?因为这实际上有效:
=> (import [java.util HashMap])
java.util.HashMap
=> (def m (HashMap.))
#'.../m
=> (filter #(< 0 (.getValue %)) m)
()
=> (.put m 3 4)
nil
=> (.put m 5 -32)
nil
=> (filter #(< 0 (.getValue %)) m)
(#<Entry 3=4>)
所以我想错误在其他地方。也许如果你向我们展示创建你的代码map
?哦,顺便说一句,您正在过滤大于零而不是小于零的值。
可能导致此错误的另一件事是地图中的值与 没有真正可比性<
,因此您也应该检查一下。