【发布时间】:2015-02-16 13:49:06
【问题描述】:
我有一个以下类型的变量
Pair<String, Class<?>> test;
我正在尝试像这样创建它:
Class<? extends Animal> animal = Tiger.class;
test = Pair.create("tiger", animal);
代码给了我“不兼容的类型”(在创建 Pair with animal 时)。虽然变量测试定义允许任何类型的类,并且动物定义了任何动物子类的边界,这比原来的更严格。那么这个作业不应该有效吗?
【问题讨论】:
-
我在 Java 中的泛型也遇到了同样的问题,它们是使用类型擦除实现的,这充其量是很不稳定的。如果你的测试也用过?扩展动物,它会工作。
-
@JeffWatkins 谢谢,但这没有任何意义,当 (Class>) 意味着它可以容纳任何类类型时,保持更多限制性类型应该没有问题。
-
请发布 Pair.create 方法代码,或者至少是带有返回类型的签名
-
这对我有用:pastebin.com/GFf8buMf
-
@guido 这是 android 库 android.util.Pair 中的一个标准类,这里是它的链接developer.android.com/reference/android/util/Pair.html