java - 由于具有私有(private)访问权限而无法编译,并且错误仅在基于 IntelliJ Idea 的 IDE 中发生

标签 java android intellij-idea android-studio

我在一周前尝试使用 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),如下所示:

java.util.Map Source Code

您会注意到 LinkedHashMap 中的嵌套静态类是私有(private)的,如下所示:

java.util.LinkedHashMap Source Code

关于java - 由于具有私有(private)访问权限而无法编译,并且错误仅在基于 IntelliJ Idea 的 IDE 中发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694884/

相关文章:

intellij-idea - 如何在同一源集中将gradle单元测试与集成测试分开?

java - 从 JavaFX 2.0 中的 TableView 读取选择

java - 字符串到 key 转换/反之亦然

android-studio - 使用 Mac 将鼠标悬停在 Android Studio 中的 WORD 上时复制警告消息

android - 如何收听来自多个供应商的位置更新?

android - Android中检查相机是否可以使用与Intent上的resolveActivity

java - IntelliJ IDEA 12.1.4 与 Tomcat 6 : Unable to load class for JSP

java - TD游戏中的圆圈敌人检测

java - 正则表达式不匹配

android - Android SDK Manager 中的 Google Web Driver 是什么?