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()方法,这怎么可能呢?
猜你喜欢
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 转换 ldap 日期 2022-01-01
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01
- 获取数字的最后一位 2022-01-01