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. |