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

  • newport83

    newport83

    19 HAZİRAN 2006
  • SPBedition

    SPBedition

    24 HAZİRAN 2013
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012