Function<T,R>
- Java kursu
- İleri seviye
- Ders 13/82
- 5 dk
Function<T,R> ile dönüşüm fonksiyonunu öğrenirsin.
Function<T,R> arayüzü
Function<T, R>, bir T değerini alıp bir R değeri döndüren işlevi temsil eder. Tek soyut yöntemi apply'dır. Bu arayüz, dönüşüm yapan kodları kısa yazmanın standart yoludur.
Örnek: Function<String, Integer> len = String::length;. Sonra len.apply("Ayşe") çağrısı 4 döndürür. İşlevi lambda ile de yazabilirsin: s -> s.length(). Function, akışlarda map'e argüman olarak da sıkça kullanılır.
compose ve andThen
İki işlevi peş peşe uygulamak için compose ve andThen kullanılır. İkisi de yeni bir Function döndürür; fark uygulama sırasındadır.
Örnek: f.andThen(g) önce f'i, sonra g'yi uygular. f.compose(g) ise önce g'yi, sonra f'i uygular. Bu, matematikteki bileşke işlemine benzer; veriyi bir hattan geçirip ikinciye göndermenin temiz yoludur.
Uygulama Function ile dizgi uzunluğunu bul
Bir Function<String, Integer> tanımla; String::length yöntem referansını kullansın. Sonra apply("Merhaba") çağrısının sonucunu System.out.println ile yazdır.
Başlangıç kodu
import java.util.function.Function;
// Function ile uzunluk işlevi tanımla (String::length)
// apply çağrısıyla "Merhaba" uzunluğunu al
// Sonucu yazdırÖrnek çözüm
import java.util.function.Function;
public class FunctionExample {
public static void main(String[] args) {
Function<String, Integer> len = String::length;
System.out.println(len.apply("Merhaba"));
}
}Beklenen çıktı
7
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Function<T,R> arayüzünün tek soyut yönteminin adı nedir?
- apply Doğru cevap
- get
- test
- accept
Açıklama: apply, Function'ın çağrı yöntemidir.
2 Function çağrısını tamamla
Function<String, Integer> len = String::length;
int n = len.____("Ayşe");
Function<String, Integer> len = String::length;
int n = len.apply("Ayşe");
Açıklama: apply, Function'ın çağrı yöntemidir.
3 Function kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
Function<T,R> |
T alır R döndürür |
apply |
Çağrı yöntemi |
andThen |
Sonra çağır |
compose |
Önce çağır |