Java 8'in java.util.function
paketinde şunlar var:
- İşlev : Bir argüman alır, bir sonuç üretir.
- Tüketici : Bir argüman alır, hiçbir şey üretmez.
- Tedarikçi : Tartışmaz, bir sonuç üretir.
- ... : İlkelleri, 2 argümanı vb. İşleyen diğer durumlar ...
Ancak " tartışma yapmaz, hiçbir şey üretmez " vakasını ele almam gerekiyor .
Bunun için hiçbir şey yok java.util.functionnal
.
Yani, soru şudur:
' Tartışmasız ve hiçbir şey döndürmeyen bir fonksiyonun ' adı nedir ?
Java 8'de tanımı şöyle olacaktır:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
Yürütücü zaten var ve başka bir amacı var: " Gönderilen çalıştırılabilir görevleri yürüten bir nesne ". İmza eşleşmiyor ( execute(Runnable):void
) ve işlevsel bir arayüz bile değil .
Çalıştırılabilir var, ancak iş parçacığı bağlamı ile güçlü bir şekilde bağlantılı:
- Paket
java.lang
değiljava.util.function
. - Javadoc şunları belirtiyor: " Çalıştırılabilir arayüz, örnekleri bir iş parçacığı tarafından yürütülmesi amaçlanan herhangi bir sınıf tarafından uygulanmalıdır ".
- "Runnable" adı, bir iş parçacığı içinde bazı kod çalıştırıyor.
Runnable
bu noktada modası geçmiş, çünkü bir Runnable Thread
( Executor
örneğin) dışındaki diğer sınıflar tarafından da kullanılıyor .
Runnable
sadece s .run()
tarafından olabileceği anlamına gelmez Thread
. Aslında, soruda açıklanan amaç için çok yaygın olarak kullanılırlar
java.util.function
pakette hiçbir şey bulamadın .