【发布时间】:2020-10-16 10:44:07
【问题描述】:
我的代码如下,我收到了错误信息Bound Mismatch Error: The type String is not a valid substitute for the bounded parameter <K extends myComparable<K>> of the type myInterface<K,V>:
interface myComparable<T> {
public int compareTo(T o);
}
interface myInterface<K extends myComparable<K>, V> {
}
public class myClass implements myInterface<String,String>{
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
但是,如果我将K extends myComparable<K> 更改为K extends Comparable<K>(不更改第一行;即使用Comparable 而不是myComparable),错误将得到解决。
为什么?以及如何使用我自己的myComparable?
【问题讨论】:
-
我如何使用我自己的 myComparable? 做什么?显然,标准的
java.lang.String类不是您的自定义myComparable类型的子类。你真正想要发生什么? -
感谢您的帮助。我只想知道
Comparable是如何工作的。现在我根据您的提示,得到了如下解决方案。 -
你应该遵循Java命名约定:变量名和方法名应该用驼峰命名。
标签: java generics inheritance types abstract-class