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
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() {...}
});
Neden't ben bir Java arayüzü stat...
Neden Java statik olarak bir sınıf bil...
Neden't statik yöntemler Java'da ...
Neden Java temel yöntem statik mi?...
Neden't statik Java yöntemleri ge...