Java 8'den başlayarak, default
arayüzlere yöntemler tanıtıldı. Etkili, bu araçlar bir in değil tüm yöntemler bu interface
vardır abstract
.
Java 9 (belki) ile başlayarak, private
yöntemlere izin verilecektir. Bu, bir interface
içindeki tüm yöntemlerin olmadığı anlamına gelir public abstract
.
"Java arabirimindeki yöntemler public
erişim değiştiriciyle veya değiştiriciyle bildirilmeli mi?" /programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m adresindeki Stack Overflow'da istendi
Orada, cevapların çoğu public abstract
bunun kullanılmaması gerektiğini savundu çünkü bir yöntemdeki hiçbir yöntem interface
başka bir şey olamaz public abstract
. Artık durum böyle değil.
Peki, arayüzlerin bu yeni özellikleri ışığında, public abstract
anahtar kelimeler bir Java arayüz yöntemi bildiriminde kullanılmalı mıdır?
Özel ortamımda, zaman zaman yazılım kodunu deneyimli, ancak Java'da deneyimli olmayan, Java kodunu okuyan insanlara sahip olacağız. public abstract
Anahtar kelimeleri dışarıda bırakmanın artık arayüzlerin bu anahtar kelimeleri kullanmak için nasıl farklı kurallara sahip olduğuna dair geçmişe aşina olmayanlar için ek bir karışıklık yaratacağını hissediyorum .
abstract
olarak koşullanması gittikçe kıvrılıyor. Java 9'da aynı cümle, "Bir değiştirici, değiştirici veya default
değiştirici içermeyen bir arabirim yöntemi dolaylı olarak soyuttur ..." Ayrıca, anahtar sözcükleri açıkça kullanmamaya ilişkin yardımcı argümanlar, yani tüm arabirim yöntemleri , şimdi tartışmalı. static
private
public abstract
stream
için java.util.Collection
ya Map.getOrDefault()
. Alternatif olarak, yeni bir alt arabirim oluşturmak ve Graphics2D gibi herkesi mahvetmek ve hiç kimse bundan hoşlanmadı!
default
Değiştirici veya değiştiriciden yoksun bir arabirim yöntemistatic
dolaylı olarakabstract
... İzin verilir, ancakabstract
böyle bir yöntem bildirimi için değiştiriciyi yedek olarak belirtmek için bir stil meselesi olarak önerilmez . " Neden her şeyin değişmesini bekliyorsunuz?