Aşağıdaki kod sadece varargs parametresi olarak null başvurusunu kullanır.Varargs'de boş parametreler yok
package currenttime;
import java.util.Arrays;
public class Main
{
private static void temp(String...str)
{
System.out.println(Arrays.asList(str));
}
public static void main(String[] args)
{
temp(null,null);
temp(null);
}
}
[null, null]
gösterir temp(null, null);
yöntem ilk çağrı bu str[0]=null
ve str[1]=null
anlamına gelir.
ama temp(null);
daha sonra çağrı NullPointerException
str
kendisi null
olduğunu görünen atılmasına neden olur.
String
temp((String)null);
gibi bir şeye yazılırsa, çalışır ve [null]
görüntüler.
Son çağrıda neden açık bir tür döküm gerekiyor? Bana öyle geliyor ki, ilk çağrıdan farklı bir null
referansı ile bir dizi dizisi olarak kabul edilir. Doğru cevap nedir?
'Dize str = null; Arrays.asList (str); 'çalışıyor, neden? –
'Arrays.asList (str);' 'java.util.List', içinde' null' girişi ile yapılandırır. 'String str = null;' oluşturulmakta olan 'List' referansıyla hiçbir ilgisi yoktur ('null' değil). – Tiny
@Tiny. Kesinlikle :) –