我正在写通用类
public class SomeClass<T> {
public static <T extends Comparable<? super T>> T min(Collection<? extends T> c) {
T min = c.iterator().next();
for (T element : c)
if (element.compareTo(min) < 0)
min = element;
return min;
}
}
public class Main {
public static void main(String[] args) {
SomeClass<Integer>.min(Arrays.asList(1, 2, 3)); // compile-time error
SomeClass.min(Arrays.asList(1, 2, 3)); // ok
}
}
在泛型类SomeClass
和泛型方法中,SomeMethod
类型参数T
是相同还是不同?
为什么我们在字符串上有编译时间错误SomeClass<Integer>.min(Arrays.asList(1,2,3));
?