我在一周前尝试使用 IntellJ IDEA 和 android SDK,今天我尝试编译一个新项目,但出现此错误
java: java.util.LinkedHashMap.Entry has private access in java.util.LinkedHashMap
相关
private final HashMap<String, Bitmap> sHardBitmapCache = new LinkedHashMap<String, Bitmap>(HARD_CACHE_CAPACITY / 2,
0.75f, true) {
@Override
protected boolean removeEldestEntry(LinkedHashMap.Entry<String, Bitmap> eldest) {
if (size() > HARD_CACHE_CAPACITY) {
sSoftBitmapCache.put(eldest.getKey(), new SoftReference<Bitmap>(eldest.getValue()));
return true;
} else
return false;
}
};
最佳答案
在您的方法中使用接口(interface) Map
代替:
private final Map<String, Bitmap> sHardBitmapCache = new LinkedHashMap<String, Bitmap>(HARD_CACHE_CAPACITY / 2,
0.75f, true) {
@Override
protected boolean removeEldestEntry(Map.Entry<String, Bitmap> eldest) {
if (size() > HARD_CACHE_CAPACITY) {
sSoftBitmapCache.put(eldest.getKey(), new SoftReference<Bitmap>(eldest.getValue()));
return true;
} else
return false;
}
};
这是 Map
上的公共(public)嵌套接口(interface),如下所示:
您会注意到 LinkedHashMap
中的嵌套静态类是私有(private)的,如下所示:
关于java - 由于具有私有(private)访问权限而无法编译,并且错误仅在基于 IntelliJ Idea 的 IDE 中发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694884/