我有一个关于 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;
}
...
}
我的构造函数调用这个:
return new ValueCollection<K, V>(this.entries());
编译错误消失了。我只是想知道为什么会这样。谢谢您的帮助!