我有一个关于Java中的genrics(可能很简单)的问题。我有以下类:构造函数中的泛型Java类型错误
public class ValueCollection<Y> implements Collection<Y>
{
private Set<Entry<?, Y>> entries;
public ValueCollection(Set<Entry<?, Y>> entries)
{
this.entries = entries;
}
...
}
当我这样调用构造函数:
return new ValueCollection<V>(entries);
我得到以下编译器错误:
The constructor ValueCollection<V>(Set<Map.Entry<K,V>>) is undefined
如果我改变我的同班同学这样的:
public class ValueCollection<X, Y> implements Collection<Y>
{
private Set<Entry<X, Y>> entries;
public ValueCollection(Set<Entry<X, Y>> entries)
{
this.entries = entries;
}
...
}
and my cons这个工程师打电话给:
return new ValueCollection<K, V>(this.entries());
编译错误消失。我只是想知道为什么会这样。谢谢您的帮助!
如果你在第一种情况下用'new ValueCollection(entries)'调用构造函数怎么办?你的第一堂课只有一个类型参数。 –
millimoose
2012-07-26 18:54:08