SORU
16 EYLÜL 2008, Salı


Neden statik iç arayüzü Java kullanılacaktır?

Sadece kod bizim temel statik iç bir arayüz buldum.

class Foo {
    public static interface Bar {
        /* snip */
    }
    /* snip */
}

Hiç böyle bir şey görmemiştim. Orijinal geliştirici ulaşamayacağı. Bu YÜZDEN sormak zorundayım:

Statik bir arayüz arkasında mantığı nedir? Ben static kaldırırsanız, değişiklik, ne olurdu? Neden birisi böyle bir şey yapsın?

CEVAP
16 EYLÜL 2008, Salı


Yukarıdaki örnekte static anahtar sözcüğü gereksiz olduğunu (iç içe geçmiş bir arayüz otomatik olarak"") statik ve anlambilim üzerine etkisi; kaldırılmasını öneriyoruz. ile temizlenebilir Aynı "" arabirim yöntemleri ve "arayüzü alanlar - değiştirici gereksiz ve sadece kaynak kod karmaşasını ekleyin." ortak nihai ortak gider

Her iki şekilde de, geliştirici, basit bir arayüz Foo adında ilan ediyor.Bar. Erişim Foo edemediği kodu Foo erişmek mümkün olmayacaktır hariç kapsayan sınıfı ile daha fazla ilişkisi yoktur.Ya da Bar. (Kaynak kodundan ya da yansıma Foo erişebilirsiniz bayt kodu.Bar bile Foo paketi-özel!)

Üst düzey yeni bir ad oluşturun ve bu, eğer sadece dış sınıftan kullanılacak bekliyorsanız iç içe bir arayüz bu şekilde oluşturmak için kabul edilebilir bir tarz olduğunu. Örneğin:

public class Foo {
    public interface Bar {
        void callback();
    }
    public static void registerCallback(Bar bar) {...}
}
// ...elsewhere...
Foo.registerCallback(new Foo.Bar() {
    public void callback() {...}
});

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Developers

    Android Deve

    9 Kasım 2007
  • KittiesMama

    KittiesMama

    10 AĞUSTOS 2008
  • thewinekone

    thewinekone

    17 Aralık 2005