在阅读Java官方教程中关于泛型的部分时,我发现可以使用“&”运算符将类型参数(在本例中为T
)限制为扩展自一个类和/或多个接口,如下所示:
<T extends MyClass & Serializable>
我把
&
替换成了,
(错误的),但仍然可以正常工作,只是有一个小警告。
我的问题是,这两者之间是否有任何区别:<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
还有一个示例方法:
static <T extends MyClass & Serializable> ArrayList<T> fromArrayToCollection(T[] a) {
ArrayList<T> arr = new ArrayList<T>();
for (T o : a) {
arr.add(o); // Correct
}
return arr;
}