java泛型和扩展

java泛型和扩展,java,Java,我读过文件,但不知道我做错了什么。。。 目标是一个包含ItemIFs的通用集合类Wlist。 Java.util.TreeMap的Java源代码使用: public V put(K key, V value) { Comparable<? super K> k = (Comparable<? super K>) key; cmp = k.compareTo(t.key); public V put(K键,V值){ 可比较的 使用Item而不是ItemIF,因此当

我读过文件,但不知道我做错了什么。。。 目标是一个包含ItemIFs的通用集合类Wlist。 Java.util.TreeMap的Java源代码使用:

public V put(K key, V value) {
  Comparable<? super K> k = (Comparable<? super K>) key;
  cmp = k.compareTo(t.key);
public V put(K键,V值){
可比较的
使用
Item
而不是
ItemIF
,因此当您使用
TP extensed ItemIF
调用它时,您正在向下转换

试着把它改成

public int compareItem( ItemIF vv)
试一试

class-Wlist

否则,您将使用
ItemIF
作为原始类型,向您发出原始类型警告。

(注意
TreeMap
使用相同的类,无论是与
比较器一起使用,还是假设该类型为
可比的
。这是一个坏主意,并且会导致必要的脏实现。)这不起作用,因为当使用“ItemIF vv”时,vv不再是Item类型,因此无法访问stg。因此,我们必须使用强制转换来访问vv.stg。这就是java.util.TreeMap所做的,也是我试图避免的。
public int compareItem( Item vv)
public int compareItem( ItemIF vv)
class Wlist<TP extends ItemIF<TP>>