«default-method» etiketlenmiş sorular

15
Ne zaman kullanılır: Java 8+ arabirimi varsayılan yöntemi, soyut yöntemi karşılaştırması
Java 8, Varsayılan Yöntemler adı verilen arabirimlerde yöntemlerin varsayılan olarak uygulanmasına izin verir . Ne zaman interface default methodbir abstract class(ile abstract method(s)) yerine, bu tür kullanacağım arasında kafam karıştı . Öyleyse varsayılan yöntemlerle arayüz ne zaman kullanılmalı ve soyut sınıf (soyut yöntem (ler) ile) ne zaman kullanılmalıdır? Soyut sınıflar …

5
Java 8 arayüz yöntemlerinde neden “son” a izin verilmiyor?
Java 8'in en kullanışlı özelliklerinden biri defaultarabirimlerdeki yeni yöntemlerdir. Bunların tanıtılmasının esasen iki nedeni vardır (başkaları da olabilir): Gerçek varsayılan uygulamaları sağlama. Misal:Iterator.remove() JDK API gelişimine izin verme. Misal:Iterable.forEach() Bir API tasarımcının bakış açısından, örneğin arayüz yöntemleri üzerinde diğer değiştiricileri kullanmak isterdim final. Bu, uygulama yöntemleri eklenirken, uygulama sınıflarında "yanlışlıkla" …

4
Java'da açıkça varsayılan bir yöntemi çağırma
Java 8, mevcut uygulamaları değiştirmeye gerek kalmadan arabirimleri genişletme yeteneği sağlamak için varsayılan yöntemler sunar. Bu yöntem geçersiz kılındığında veya farklı arabirimlerdeki çakışan varsayılan uygulamalar nedeniyle kullanılabilir olmadığında, bir yöntemin varsayılan uygulanmasını açıkça çağırmanın mümkün olup olmadığını merak ediyorum. interface A { default void foo() { System.out.println("A.foo"); } } class …

2
Java 8 arayüz yöntemlerinde “senkronize edilmesine” izin verilmemesinin nedeni nedir?
Java 8'de kolayca yazabilirim: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Sınıflarda da kullanabileceğim tam senkronizasyon anlambilimini alacağım. Ancak, synchronizeddeğiştirici yöntem bildirimlerinde kullanamıyorum : interface Interface2 { default synchronized void method1() …

5
Java8: java.lang.Object'ten bir yöntem için varsayılan bir yöntem tanımlamak neden yasaklanmıştır.
Varsayılan yöntemler, Java araç kutumuzda güzel ve yeni bir araçtır. Ancak, yöntemin bir defaultsürümünü tanımlayan bir arayüz yazmaya çalıştım toString. Java yöntemleri ilan etmesinden bu yana bu, yasak olduğunu söylüyor java.lang.Objectolmayabilir defaulted. Durum neden böyle? "Temel sınıf her zaman kazanır" kuralı olduğunu biliyorum, bu nedenle varsayılan olarak (pun;), defaultbir Objectyöntemin …

1
Özellik olarak Java 8 varsayılan yöntemleri: güvenli mi?
Java 8'de özelliklerin fakirlerin erkek versiyonu olarak varsayılan yöntemleri kullanmak güvenli bir uygulama mı? Bazıları pandaları sadece uğruna kullanırsanız üzüleceğini iddia ediyor , çünkü bu harika, ama niyetim bu değil. Ayrıca, varsayılan yöntemlerin API evrimini ve geriye dönük uyumluluğu desteklemek için tanıtıldığı da sık sık hatırlatılır, ki bu doğrudur, ancak …

4
Varsayılan yöntemle bir arayüz ne zaman başlatılır?
Cevaplamak için Java Dil Şartnamede arama yaparken bu soruyu , ben öğrendim o Bir sınıf başlatılmadan önce, onun doğrudan üst sınıfı başlatılmalıdır, ancak sınıf tarafından uygulanan arabirimler başlatılmaz. Benzer şekilde, bir arayüzün süper arayüzleri, arayüz başlatılmadan önce başlatılmaz. Kendi merakım için denedim ve beklendiği gibi arayüz InterfaceTypebaşlatılmadı. public class Example …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.