SORU
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 . bir java.lang.String[] dökme olmayan varargs arayın ve bu bastırmak için uyarı

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DavidParody

    DavidParody

    17 EKİM 2009
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • pain975

    pain975

    27 NİSAN 2008