Jenerikler hakkındaki resmi Java öğreticisini okurken, tür bağımsız değişkenini (bu durumda T
) bir sınıfı ve / veya daha fazla arabirimi 've' operatörü ( &
) ile genişletmek için şu şekilde kısıtlayabileceğinizi öğrendim :
<T extends MyClass & Serializable>
Ben yerini &
ile ,
(yanlışlıkla ve hala küçük bir uyarı ile, çalışır).
Sorum şu, bu ikisi arasında herhangi bir fark var mı:
<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
Ve örnek yöntem:
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'nin bir klavye ve kullandığınızla aynı klavyeyi kullandığını varsayıyorsunuz.
—
emory
@emory Bence bu bile yanlış yön - hata parmaklarında değil beyninde. Benzer şekilde, bir Java kaynak dosyasında 'içe aktarma' yerine 'içerme' kullanmayı denediğiniz gibi. Yanlış yazdınız, çünkü beyniniz size yanlış şeyi yazmanızı söyledi, bu da çeşitli nedenlerle mümkündür.
—
Nick Pickering
@Nicholas Pickering, doğru! Benim için klavye yüzünden değil, beyin yüzünden bir yanlış yazıydı. Bir sınıfın uyguladığı arabirimleri yazdığınızda, bunları virgülle ayırırsınız.
—
Alin Ciocan