由<Item>
说: -
Bound mismatch: The type Item is not a valid substitute for the bounded parameter <T extends
Comparable<? super T>> of the type ExpandableArrayList<T>
ExpandableArrayList<Item> items = new ExpandableArrayList<Item> ();
这些是我的标题:
public interface ListInterface <T extends Comparable <? super T>>
public class ExpandableArrayList<T extends Comparable<?super T>> extends Item {
public class Item implements Comparable
我无法弄明白我需要改变什么。每当我在一个标题中更改某些内容时,其他错误都会弹出。我使用compareTo(Object obj)类型。
答案 0 :(得分:2)
您的Item
类正在实现Comparable
接口的原始格式。您应该通过在Item
本身声明一个类型参数来实现通用表单。然后,ExpandableArrayList
可以实现Item
。
public class Item<T extends Comparable <? super T>> implements Comparable<T>
和
public ExpandableArrayList<T extends Comparable<?super T>> extends Item<T>
这将解决由于标题引起的编译问题。
但不清楚为什么ExpandableArrayList
应该继承Item
。它应该包含Item
s;这未通过“is-a”测试。 ExpandableArrayList
根本不应延长Item
。