java - 泛型上的通配符错误

标签 java android generics android-studio wildcard

我正在使用 Android Studio 开发应用。

当我尝试将 Object 放入 ArrayMap 时出现错误。

private ArrayMap<String, ? extends Tracker> trackers;

public void addTracker(@NonNull Tracker tracker) {
    trackers.put(tracker.getName(), tracker);
}

我想向我的 ArrayMap 添加任何类型的继承自类 Tracker 的对象

IDE 说它无法为参数 (String, Tracker) 解析 put 方法

知道为什么吗?

最佳答案

tracker 的第二个通用参数可以是任何类型的 Tracker,因此编译器会阻止添加直接实例。您可以将其声明为

private ArrayMap<String, Tracker> trackers;

关于java - 泛型上的通配符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437586/

相关文章:

java - 外部存储并不指大容量内部 SD 卡

java - 将数组从 Delphi DLL 传递到 JNA

java - 使用字符串更新 .txt 文件

android - Android 数字类型的 EditText 允许先输入负号

android - 如何以编程方式检索所有和正在运行的应用程序大小、CPU 使用率?

java - 泛型类中的这些语句有什么区别?

java - ActionBar 文本的背景颜色没有改变

php - 返回分隔字符串的替代方法?

java - 如何使用泛型类型声明类 - Java 1.7

c# - c# : how do I nest using statements and allow code blocks to modify returned data? 中的函数式编程