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