【发布时间】:2014-12-02 18:58:27
【问题描述】:
我有以下代码 sn-p 返回类型不匹配错误:
@SuppressWarnings("rawtypes")
public Map<String, Class<? extends SomeClass.SuperClass>> subClass() {
return Collections.singletonMap("hello", SomeClass.SubClass.class);
}
类声明如下所示:
public class SomeClass {
public static abstract class SuperClass { }
public static class SubClass extends SuperClass{ }
}
这会返回类型不匹配错误,说明:
Type mismatch: cannot convert from Map<String,Class<SubClass>> to Map<String,Class<? extends SuperClass>>
为什么会这样?无论我在 subClass() 的参数化返回类型中使用“?扩展 SuperClass”还是仅使用“SuperClass”,我仍然看到同样的错误。我也尝试过只扩展 SomeClass ,但这也没有奏效。
【问题讨论】:
标签: java generics inheritance collections