gpt4 book ai didi

Java Generics - 插入内部类型参数

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:29 28 4
gpt4 key购买 nike

我是java新手。我只是想通过 Comparable<String>进入通用类型的方法参数 <E extends Comparable<E>> .我相信<E extends Comparable<E>>的意思是任何扩展 Comparable 的对象.请告诉我如何通过Comparable<String>或任何扩展 Comparable<String> 的对象并且里面还有一个对象。

编译器给我错误 The inferred type Compare<String> is not a valid substitute for the bounded parameter <E extends Comparable<E>>

代码:

public class Compare<T> implements Comparable<T>{

public int compareTo(T o) {

return 0; // Not worried about logic

}

}

class CompareTest{

public <E extends Comparable<E>>void testGeneric(E e){

System.out.println("Executed");
}

public static void main(String args[]){
Compare<String> compare = new Compare<String>();

CompareTest test = new CompareTest();
test.testGeneric(compare);
//The inferred type Compare<String> is not a valid substitute for the bounded
//parameter <E extends Comparable<E>>
}
}

最佳答案

E extends Comparable<E>意思是:一个类型 E 能够与同类型 E 的其他对象进行比较。

但是您的比较类型不符合条件。它无法与另一个 Compare 进行比较。 Compare<T>只能将自己与 T 进行比较, 而不是 Compare<T> ,因为它被声明为

public class Compare<T> implements Comparable<T>

很难理解你想用这种比较类型实现什么。

关于Java Generics - 插入内部类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com