我知道我可以在java中创建一个类:
public class test {/*some code*/}
但现在我有了这个:
public class coada < T extends Number & Comparable < Number>> {
List <T> pq = new ArrayList <T>();
public void add(T e , List <T> c) {
c.add(e);
Collections.sort(c);
}
public void remove(List < ? extends Number> c) {
c.remove(0);
}
}
我不理解角度括号和参数列表的更复杂的语法。
我有这些问题:
有人可以澄清示例中使用的语法吗?
我知道Java不支持多重继承。 那么Number&amp;可以比较吗?
我认为泛型用于集合,而不是类,
那么,class coada
如何具有类型参数?
答案 0 :(得分:2)
T extends Number & Comparable <Number>
T扩展了Number并实现了Comparable
泛型不要求将类型作为集合。
答案 1 :(得分:1)
Comparable
是一个接口,因此T
可以扩展Number
并同时实现Comparable<Number>
(以及任意数量的其他接口)。
至于你的第二个问题,任何类都可以有类型参数,而不仅仅是Collection
s。 coada < T extends Number & Comparable < Number>>
表示类coada
具有名为T的类型参数,该参数必须是Number
或Number
的子类,并实现接口Comparable<Number>
。