具有两种或更多类型(接口)错误的类的泛型

时间:2013-01-04 00:43:30

标签: java generics java-7

这是我的班级:

public class MyTreeMap
< K extends CharSequence, V extends CharSequence & Map > {
}

我的主要:

{MyTreeMap< String, String > s = new MyTreeMap < >();}

错误是什么? Netbeans给我这个错误:

type参数String不在类型变量K的范围内   其中K是一个类型变量:     K扩展了MyTreeMap类中声明的CharSequence

type argument String不在类型变量V的范围内   其中V是一个类型变量:     V扩展了在MyTreeMap类中声明的String,Map

1 个答案:

答案 0 :(得分:1)

部分:V extends CharSequence & Map表示您的第二种类型需要延伸,而String则不需要。你能找到CharSequences的地图吗?

public class MyTreeMap< K extends CharSequence, V extends Map<K, CharSequence> > {}

跟进你的评论,你不能使用泛型接受两个不同类型的不同对象(当你调用get时它将如何知道返回什么)。您可以创建一个名为ValidTreeType的包装类,它具有Map和String属性并生成这些的Map。