26 EKİM 2010, Salı
Tek boş tartışma çağrısı Java varargs yöntemi?
Eğer sırasında Java bir yöntem varsa foo(Object ...arg)
ve foo(null, null)
, arg[0]
arg[1]
İ de var null
s olarak arayın. Ama eğer foo(null)
, arg
ararsam boş kendisidir. Neden böyle oluyor?
Nasıl foo
foo.length == 1 && foo[0] == null
true
böyle mi demeliyim?
CEVAP
26 EKİM 2010, Salı
Sorun edebi null kullandığınızda, Java olması gerekiyordu ne olduğunu bilmiyor. Boş bir Nesne olabilir, bir Nesne veya null bir dizi olabilir. Tek bir değişken için ikinci varsayar.
İki seçeneğiniz var. Boş açıkça veya yöntem türü kesin belirlenmiş bir değişken kullanarak Nesne aramak için dökme. Aşağıdaki örneğe bakın:
public class Temp{
public static void main(String[] args){
foo("a", "b", "c");
foo(null, null);
foo((Object)null);
Object bar = null;
foo(bar);
}
private static void foo(Object...args) {
System.out.println("foo called, args: " asList(args));
}
}
Çıkış:
foo called, args: [a, b, c]
foo called, args: [null, null]
foo called, args: [null]
foo called, args: [null]
Bunu Paylaş:
Nasıl bir dize olarak yöntem adı veril...
Dönüş türü ile Java yöntemi return ifa...
Java Yöntemi İçerir.lang.String büyük ...
Java - kolayca POST yöntemi ile HTTP p...
C senkron yöntemi zaman uyumsuz yöntem...