Garip bir durum ArrayList için yayın yaparken - Aşağıdaki kodu:"Uyarı: [kontrolsüz] kontrolsüz döküm" Nesne <String[]>
proje inşa edilmiştirArrayList<String[]> listArr = new ArrayList<>();
Object[] obj = new Object[]{"str", listArr};
String str = (String) obj[0];//OK
ArrayList<String[]> list = (ArrayList<String[]>) obj[1];//warning: [unchecked] unchecked cast
(proje özelliklerinde derleyici seçeneği -Xlint:unchecked
ile), bir tane olsun uyarı:
uyarı: [işaretlenmemiş] kontrolsüz döküm
ArrayList listesi = (ArrayList) obj [1];
gerekli: ArrayList
bulundu: Nesne
Ama aynı şekilde dize döküm sorun yok. Burada sorun nedir?
yapmalısınız, ancak daha sonra bunu ArrayList' türüne nasıl değiştirmeliyiz, bu yüzden bunu 'ArrayList 'gerektiren bir yönteme aktarabilirim (aksi takdirde kod derlenmez) ? Yoksa bu uyarıyı görmezden gelmeliyim? –
@Ernestas Gruodis: Bu, Java dili * ve * JVM'de derin, uyumsuz değişiklikler olmadan çözülemeyen bir sınırlamadır. Ama soru şu ki, 'Object []' nı kullanıyorsun. Java’nın tip sistemi, nesnenin türlerini takip etmenize izin verir ve bu tip bilgileri kasten indirmeye karar verirseniz, kayıp tip bilgisinden şikayet etmemelisiniz… – Holger
'Nesne []' yöntemi çeşitli veri türlerini döndürdüğü için. Bu sorunun cevabı anlamına gelir. –