class MyTest<K,V extends Number & Comparable> implements Comparable<MyTest>{
private K key;
private V value;
}
Run Code Online (Sandbox Code Playgroud)
这是什么意思K, V extends Number & Comparable?在上面的语句MyTest中实现了一个类似的接口,但我无法弄清楚K,V为什么有Number&Comparable.k,v不是接口.有人可以就此启发我.
这个类接受两个泛型参数,第一个被命名为K(很可能被用作"key"),第二个被命名为V(可能被用作"value").
V extends Number & Comparablepart表示该类仅接受V扩展Number抽象类和实现Comparable接口的那些值.这样的类的例子是标准的JDK Integer,Float,Long,Double或BigInteger.如果您想使用自己的类V,则应同时扩展Number和实现Comparable.K对此没有限制:您可以使用任何类K.例如,此类型有效:
MyTest<String, Integer> myTest; // K = String, V = Integer
Run Code Online (Sandbox Code Playgroud)
但是这个会导致编译错误:
MyTest<Integer, String> myTest; // K = Integer, V = String, does not implement Number
Run Code Online (Sandbox Code Playgroud)