Java 泛型类型扩展接口,无法在没有警告的情况下访问接口方法

Java 泛型类型扩展接口,无法在没有警告的情况下访问接口方法,java,generics,hashmap,comparable,Java,Generics,Hashmap,Comparable,如果我有一个泛型类 public class Graph<K, V extends Comparable> { ... } 编译时,我收到警告 warning: [unchecked] unchecked call to compareTo(T) as a member of the raw type Comparable if (value.compareTo(min) < 0) { where T is a type-variable: T extends

如果我有一个泛型类

public class Graph<K, V extends Comparable> {
     ...
 }
编译时,我收到警告

warning: [unchecked] unchecked call to compareTo(T) as a member of the raw type
Comparable

if (value.compareTo(min) < 0) {

where T is a type-variable:
T extends Object declared in interface comprable
我将此警告解释为编译器不确定值是否可比较。为什么不呢?这里的问题是什么?如何解决它?

接口被声明为原始接口。它应该被用作

YourGenericInterfaceHere extends Comparable<YourGenericInterfaceHere>
简而言之,您应该将类声明为:

public class Graph<K, V extends Comparable<V>> {
    //rest of code...
}
接口被声明为原始。它应该被用作

YourGenericInterfaceHere extends Comparable<YourGenericInterfaceHere>
简而言之,您应该将类声明为:

public class Graph<K, V extends Comparable<V>> {
    //rest of code...
}
Comparable是泛型类型,因此在声明类型参数V扩展Comparator时,应将接口参数化:

public class Graph<K, V extends Comparable<V>> {
Comparable是泛型类型,因此在声明类型参数V扩展Comparator时,应将接口参数化:

public class Graph<K, V extends Comparable<V>> {
您是否意识到Compariable本身是一个泛型类型,查看您的类声明行中的警告?您是否意识到Compariable本身是一个泛型类型,查看您的类声明行中的警告?为了获得最佳结果,请使用V扩展Compariable获得最佳结果使用V扩展Compariable获得最佳结果使用V扩展可比为最佳结果使用V扩展可比