How can it be, that ConcurrentHashMap has no keySet() method?(ConCurentHashMap没有keyset()方法,这怎么可能呢?)
本文介绍了ConCurentHashMap没有keyset()方法,这怎么可能呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在调试从Matlab
调用的Java
代码,并获得异常:
Java exception occurred:
java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
库类没有库方法,怎么可能?
更新
Matlab正在使用Java7
。我调用的代码是为Java8
编译的,包含语法
for (Tag t : matrix.keySet()) {
即Java8
-特定。虽然声称它应该与Java7
是二进制兼容的,否则在Java8
中做许多妥协是没有意义的。
推荐答案
在JAVA 8中,ConcurrentHashMap.keySet()
返回类型已更改。
在Oracle JDK 7中:
public Set<K> keySet() {
Set<K> ks = keySet;
return (ks != null) ? ks : (keySet = new KeySet());
}
在Oracle JDK 8中:
public KeySetView<K,V> keySet() {
KeySetView<K,V> ks;
return (ks = keySet) != null ? ks : (keySet = new KeySetView<K,V>(this, null));
}
public static class KeySetView<K,V> extends CollectionView<K,V,K>
implements Set<K>, java.io.Serializable {
这篇关于ConCurentHashMap没有keyset()方法,这怎么可能呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:ConCurentHashMap没有keyset()方法,这怎么可能呢?
基础教程推荐
猜你喜欢
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01