为什么我在 FuzzyWuzzyContainer 上遇到这个编译器错误?
Bound mismatch:The type FuzzyWuzzy is not a valid substitute for the bounded parameter
<T extends Fuzzy & Comparable<T>>
of the type FuzzyContainer
FuzzyWuzzy 实际上确实实现了有界泛型中定义的两个接口(interface)。
public interface Fuzzy
{
boolean isFuzzy();
}
public class FuzzyWuzzy implements Fuzzy, Comparable<Fuzzy>
{
public boolean isFuzzy() {return true;}
public int compare(Fuzzy o) {return 0;)
}
public abstract class FuzzyContainer<T extends Fuzzy & Comparable<T>>
{
:
}
public class FuzzyWuzzyContainer extends Fuzzycontainer<FuzzyWuzzy> // Error is here
{
}
最佳答案
问题是FuzzyWuzzy implements Comparable<Fuzzy>
. FuzzyContainer
期待两个T
在FuzzyContainer<T extends Fuzzy & Comparable<T>>
是同一类型。 FuzzyWuzzy
工具 Fuzzy
但它没有实现 Comparable<FuzzyWuzzy>
.
尝试,FuzzyWuzzy implements Fuzzy, Comparable<FuzzyWuzzy>
关于java - 在具有多个边界的类型参数上出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13401549/