泛型方法之间的数据传递
2020-02-16 本文已影响0人
桐桑入梦
例子如下,使用了Arrays.asList()和Collections.unmodifiableList()两个方法。
public static final List<Class<? extends Pet>> allTypes =
Collections.unmodifiableList(Arrays.asList(
Pet.class,Dog.class,Cat.class,Rodent.class,Mutt.class,Pug.class,
EgyptianMau.class,Manx.class,Cymric.class,Rat.class,Mouse.class,
Hamster.class
));
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
public static <T> List<T> unmodifiableList(List<? extends T> list) {
return (list instanceof RandomAccess ?
new UnmodifiableRandomAccessList<>(list) :
new UnmodifiableList<>(list));
}
实际上,因为使用了java7之后的泛型推导功能。根据返回值推导传入的参数的类型。也可以这样写:
