ジェネリックに関する Java の公式チュートリアルを読んでいるときに、型引数 (この場合は is T
) を制限して、次のように「and」演算子 ( &
)を使用してクラスおよび/または複数のインターフェイスを拡張できることがわかりました。
<T extends MyClass & Serializable>
&
を,
(誤ってまだ動作しますが、マイナーな警告があります)に置き換えました。
私の質問は、これら2つに違いはありますか?
<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;
}