通用方法Java

时间:2014-12-07 23:23:15

标签: java generics methods

这两种通用方法之间有什么区别吗?

  1. public static <E> void fill(ArrayList<? extends Comparable<? super E>> a)

  2. public static <E extends Comparable<? super E>> void fill2(ArrayList<E> a)

1 个答案:

答案 0 :(得分:5)

是的,E的绑定是不同的。鉴于一些

class Foo implements Comparable<Foo>

和一些

class Bar implements Comparable<Foo> // Not Bar!

Foo对于fillfill2都是合法的论据,因为第二种方法需要E = Foo来扩展Comparable并拥有此Comparable E = Foo 1}}实现为Bar。 {{1}}无法满足此要求。