logo

Java İşlevsel Arayüzleri

Tam olarak bir soyut yöntem içeren bir Arayüz, işlevsel arayüz olarak bilinir. Herhangi bir sayıda varsayılan, statik yönteme sahip olabilir ancak yalnızca bir soyut yöntem içerebilir. Ayrıca nesne sınıfının yöntemlerini de bildirebilir.

İşlevsel Arayüz aynı zamanda Tek Soyut Yöntem Arayüzleri veya SAM Arayüzleri olarak da bilinir. Java'da işlevsel programlama yaklaşımına ulaşmaya yardımcı olan yeni bir özelliktir.

100 üzerinden 10 nedir

örnek 1

 @FunctionalInterface interface sayable{ void say(String msg); } public class FunctionalInterfaceExample implements sayable{ public void say(String msg){ System.out.println(msg); } public static void main(String[] args) { FunctionalInterfaceExample fie = new FunctionalInterfaceExample(); fie.say('Hello there'); } } 
Şimdi Test Edin

Çıktı:

 Hello there 

İşlevsel bir arayüz, nesne sınıfı yöntemlerine sahip olabilir. Aşağıdaki örnekte bakın.

Örnek 2

 @FunctionalInterface interface sayable{ void say(String msg); // abstract method // It can contain any number of Object class methods. int hashCode(); String toString(); boolean equals(Object obj); } public class FunctionalInterfaceExample2 implements sayable{ public void say(String msg){ System.out.println(msg); } public static void main(String[] args) { FunctionalInterfaceExample2 fie = new FunctionalInterfaceExample2(); fie.say('Hello there'); } } 
Şimdi Test Edin

Çıktı:

 Hello there 

Geçersiz İşlevsel Arayüz

İşlevsel bir arayüz, yalnızca herhangi bir soyut yönteme sahip olmadığında başka bir arayüzü genişletebilir.

 interface sayable{ void say(String msg); // abstract method } @FunctionalInterface interface Doable extends sayable{ // Invalid '@FunctionalInterface' annotation; Doable is not a functional interface void doIt(); } 

Çıktı:

 compile-time error 

Örnek 3

Aşağıdaki örnekte, işlevsel bir arabirim, işlevsel olmayan bir arabirime genişletilmektedir.

 interface Doable{ default void doIt(){ System.out.println('Do it now'); } } @FunctionalInterface interface Sayable extends Doable{ void say(String msg); // abstract method } public class FunctionalInterfaceExample3 implements Sayable{ public void say(String msg){ System.out.println(msg); } public static void main(String[] args) { FunctionalInterfaceExample3 fie = new FunctionalInterfaceExample3(); fie.say('Hello there'); fie.doIt(); } } 
Şimdi Test Edin

Çıktı:

java diziyi başlat
 Hello there Do it now 

Java Önceden Tanımlanmış İşlevsel Arayüzler

Java, lambda ve yöntem referanslarını kullanarak işlevsel programlamayla ilgilenmek için önceden tanımlanmış işlevsel arayüzler sağlar.

Ayrıca kendi özel işlevsel arayüzünüzü de tanımlayabilirsiniz. Java.util.function paketine yerleştirilen işlevsel arayüzün listesi aşağıdadır.


Arayüz Tanım
Çift Tüketici İki giriş argümanını kabul eden ve sonuç döndürmeyen bir işlemi temsil eder.
Tüketici Tek bir argümanı kabul eden ve sonuç döndürmeyen bir işlemi temsil eder.
İşlev Bir argümanı kabul eden ve sonuç döndüren bir işlevi temsil eder.
yüklem Bir bağımsız değişkenin yüklemini (boolean değerli işlevi) temsil eder.
Çift Fonksiyon İki argümanı kabul eden ve bir sonuç döndüren bir işlevi temsil eder.
İkili Operatör Aynı veri tipindeki iki işlenen üzerinde yapılan işlemi temsil eder. İşlenenlerle aynı türden bir sonuç döndürür.
BiPredicate İki bağımsız değişkenin yüklemini (boolean değerli işlev) temsil eder.
Boole Tedarikçisi Boole değeri olan sonuçların tedarikçisini temsil eder.
DoubleBinaryOperator İki double tip işlenen üzerindeki bir işlemi temsil eder ve double tip bir değer döndürür.
Çift Tüketici Tek bir çift tip argümanı kabul eden ve sonuç döndürmeyen bir işlemi temsil eder.
Çift Fonksiyon Çift tipli bir argümanı kabul eden ve sonuç üreten bir fonksiyonu temsil eder.
Çift Tahmin Bir çift tip argümanın yüklemini (boolean değerli fonksiyon) temsil eder.
Çift Tedarikçi Çift tip sonuçların tedarikçisini temsil eder.
DoubleToIntFunction Double tipinde bir argümanı kabul eden ve int tipinde bir sonuç üreten bir işlevi temsil eder.
DoubleToLongFunction Çift tipte bir argümanı kabul eden ve uzun tipte bir sonuç üreten bir işlevi temsil eder.
DoubleUnaryOperator Tek bir çift tip işlenen üzerinde çift tip sonuç üreten bir işlemi temsil eder.
IntBinaryOperatör İki int tipi işlenen üzerindeki bir işlemi temsil eder ve int tipi bir sonuç döndürür.
Dahili Tüketici Tek bir tamsayı argümanını kabul eden ve sonuç döndürmeyen bir işlemi temsil eder.
IntFunction Bir tamsayı argümanını kabul eden ve sonuç döndüren bir işlevi temsil eder.
IntPredicate Bir tamsayı argümanının yüklemini (boolean değerli fonksiyon) temsil eder.
Dahili Tedarikçi Tamsayı tipinde bir tedarikçiyi temsil eder.
IntToDoubleFunction Bir tamsayı argümanını kabul eden ve bir double döndüren bir işlevi temsil eder.
IntToLongFunction Bir tamsayı argümanını kabul eden ve uzun bir değer döndüren bir işlevi temsil eder.
Uluslararası Operatör Bir tamsayı sonucu üreten tek bir tamsayı işleneni üzerinde yapılan bir işlemi temsil eder.
Uzun İkili Operatör İki uzun tip işlenen üzerinde yapılan bir işlemi temsil eder ve uzun tip bir sonuç döndürür.
Uzun Tüketici Tek bir uzun tip argümanı kabul eden ve sonuç döndürmeyen bir işlemi temsil eder.
Uzun Fonksiyon Uzun tipte bir argümanı kabul eden ve sonuç döndüren bir işlevi temsil eder.
Uzun Tahmin Uzun tipte bir bağımsız değişkenin yüklemini (boolean değerli işlevi) temsil eder.
UzunTedarikçi Uzun tip sonuçların tedarikçisini temsil eder.
LongToDoubleFunction Uzun tipte bir argümanı kabul eden ve double tipinin sonucunu döndüren bir işlevi temsil eder.
LongToIntFunction Uzun türde bir argümanı kabul eden ve bir tamsayı sonucu döndüren bir işlevi temsil eder.
LongUnaryOperatör Uzun tipte bir sonuç döndüren tek bir uzun tip işlenen üzerinde yapılan bir işlemi temsil eder.
ObjDoubleTüketici Bir nesneyi ve çift argümanı kabul eden ve sonuç döndürmeyen bir işlemi temsil eder.
ObjIntTüketici Bir nesneyi ve bir tamsayı argümanını kabul eden bir işlemi temsil eder. Sonuç döndürmez.
ObjLongTüketici Bir nesneyi ve uzun bir argümanı kabul eden bir işlemi temsil eder, sonuç döndürmez.
Tedarikçi Sonuçların tedarikçisini temsil eder.
ToDoubleBiFunction İki argümanı kabul eden ve çift tipte sonuç üreten bir işlevi temsil eder.
ToDoubleFunction Double tipi sonuç döndüren bir işlevi temsil eder.
ToIntBiFunction İki argümanı kabul eden ve bir tamsayı döndüren bir işlevi temsil eder.
ToIntFunction Bir tamsayı döndüren bir işlevi temsil eder.
ToLongBiFunction İki argümanı kabul eden ve uzun tipte bir sonuç döndüren bir işlevi temsil eder.
ToLongFunction Long tipinin sonucunu döndüren bir işlevi temsil eder.
Tekli Operatör Tek bir işlenen üzerinde, işleneniyle aynı türden bir sonuç döndüren bir işlemi temsil eder.