24 Kasım 2008, PAZARTESİ
Neden boş dökme?
Bu kod parçası bir yerde gördüm ve merak ettim: neden ve ne zaman birini yapın:
doSomething( (MyClass) null );
Hiç bunu yaptın mı? Deneyiminizi paylaşır mısınız?
CEVAP
24 Kasım 2008, PAZARTESİ
doSomething
aşırı, aşırı seçilir null açıkça MyClass
cast gerekir:
public void doSomething(MyClass c) {
// ...
}
public void doSomething(MyOtherClass c) {
// ...
}
Dökme ihtiyacı olmayan yapmacık bir durum varargs bir işlevini çağırdığınızda
class Example {
static void test(String code, String... s) {
System.out.println("code: " code);
if(s == null) {
System.out.println("array is null");
return;
}
for(String str: s) {
if(str != null) {
System.out.println(str);
} else {
System.out.println("element is null");
}
}
System.out.println("---");
}
public static void main(String... args) {
/* the array will contain two elements */
test("numbers", "one", "two");
/* the array will contain zero elements */
test("nothing");
/* the array will be null in test */
test("null-array", (String[])null);
/* first argument of the array is null */
test("one-null-element", (String)null);
/* will produce a warning. passes a null array */
test("warning", null);
}
}
Son satırı aşağıdaki uyarıyı çıkarır:
Örnek.:26 java: uyarı: olmayan varargs varargs hatalı yöntemi çağrısı tartışma dün parametre için tür;< / ^ br . bir varargs
java.lang.String
dökme Ara< / ^ br . birjava.lang.String[]
dökme olmayan varargs arayın ve bu bastırmak için uyarı
Bunu Paylaş:
Neden NSİnteger bir değişken uzun biçi...
Neden boş dökme?...
Karıştırma ve dökme " bir hata (i...
Neden bir performans dökme " ifadesini...
Neden sıralanmamış bir dizi daha hızlı...