class  MyTest<K,V extends Number & Comparable> implements Comparable<MyTest>{

    private K key;
    private V value;

}


K, V extends Number & Comparable是什么意思?在上面的声明中,MyTest正在实现一个可比较的接口,但是我无法弄清楚K,V以及为什么存在Number&Comparable。 k,v不是接口。有人可以启发我。

最佳答案

该类接受两个通用参数,第一个称为K(可能用作“键”),第二个称为V(可能用作“值” ”)。

V extends Number & Comparable部分意味着该类仅接受扩展了V抽象类并实现Number接口的那些Comparable值。此类的示例是标准JDK IntegerFloatLongDoubleBigInteger。如果要将自己的类用作V,则应扩展Number并同时实现Comparable。没有对K的限制:您可以对K使用任何类。例如,此类型有效:

MyTest<String, Integer> myTest; // K = String, V = Integer


但这会导致编译错误:

MyTest<Integer, String> myTest; // K = Integer, V = String, does not implement Number

关于java - 通用:扩展了数量和可比性的基本知识,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33910306/

10-13 02:03