Page 26 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 26
26 | Java’da Fonksiyonel Programlama
@FunctionalInterface’den dolayı eğer ikinci bir metot eklenseydi, program çalıştırıldığında derleyici
(compiler) TestHataliFonksiyonelArayüz arayüzünün fonksiyonel arayüz tanımına uymadığını
belirten aşağıdaki hatayı atacaktı ve program çalışmayacaktı.
@FunctionalInterface
public interface TestHataliFonksiyonelArayüz {
int birSeyYap();
int baskaBirSeyYap();
}
java: Unexpected @FunctionalInterface annotation
TestHataliFonksiyonelArayüz is not a functional interface
multiple non-overriding abstract methods found in interface
TestHataliFonksiyonelArayüz
Dört farklı fonksiyonel arayüz tipinden söz edilebilir:
1-) Consumer
2-) Supplier
3-) Predicate
4-) Function
3.1. Consumer
Consumer tüketici anlamına gelir ve bu arayüzler tek bir argüman (argument) alıp hiçbir değer
dönmezler. Örnek kullanım:
public class Main {
static Consumer<Character> charConsumer = ch -> System.out.println(ch);
public static void main(String args[]) {
Character[] charArray = {‘t’, ‘e’, ‘s’, ‘t’};
Arrays.stream(charArray).forEach(charConsumer);
}
}
Bu program bize aşağıdaki çıktıyı verecektir:
t
e
s
t