Java 泛型中的“&”和“”有什么区别?
在阅读有关泛型的Java官方教程时,我发现您可以限制类型参数(在本例中为)以使用“and”运算符()扩展类和/或更多接口,如下所示: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;
}