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 Integer
,Float
,Long
,Double
或BigInteger
。如果要将自己的类用作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/