在阅读有关泛型的Java官方教程时,我发现您可以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;
}
5
@Doorknob,您假设OP使用的是键盘,并且使用的是相同的键盘。
—
2013年
@emory我认为方向还是错误的-错误不是在他的手指上,而是在他的大脑上。就像您试图在Java源文件中使用'include'而不是'import'一样。您输错了“ include”,因为您的大脑告诉您输错了内容,这可能由于多种原因。
—
Nick Pickering
@尼古拉斯·皮克林(Nicholas Pickering),对!对我来说,这不是因为键盘而引起的打字错误,而是因为大脑。编写类实现的接口时,请用逗号分隔它们。
—
Alin Ciocan