Java Lambda İfadeleri
Java Lambda İfadeleri
Lambda İfadeleri Java 8'e eklendi.
Lambda ifadesi, parametreleri alan ve bir değer döndüren kısa bir kod bloğudur. Lambda ifadeleri yöntemlere benzer, ancak bir ada ihtiyaç duymazlar ve doğrudan bir yöntemin gövdesinde uygulanabilirler.
Sözdizimi
En basit lambda ifadesi, tek bir parametre ve bir ifade içerir:
parameter -> expression
Birden fazla parametre kullanmak için bunları parantez içine alın:
(parameter1, parameter2) -> expression
İfadeler sınırlıdır. Derhal bir değer döndürmeleri gerekir ve veya gibi değişkenler, atamalar veya ifadeler if
içeremezler for
. Daha karmaşık işlemler yapmak için küme parantezleri ile bir kod bloğu kullanılabilir. Lambda ifadesinin bir değer döndürmesi gerekiyorsa, kod bloğunun bir return
ifadesi olmalıdır.
(parameter1, parameter2) -> { code block }
Lambda İfadelerini Kullanma
Lambda ifadeleri genellikle bir fonksiyona parametre olarak iletilir:
Örnek
Listedeki her öğeyi yazdırmak için ArrayList
' yönteminde bir lamba ifadesi kullanın :forEach()
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
numbers.forEach( (n) -> { System.out.println(n); } );
}
}
Değişkenin türü yalnızca bir yöntemi olan bir arabirim ise, Lambda ifadeleri değişkenlerde saklanabilir. Lambda ifadesi, bu yöntemle aynı sayıda parametreye ve aynı dönüş türüne sahip olmalıdır. Consumer
Java, listeler tarafından kullanılan arabirim ( java.util
pakette bulunur) gibi yerleşik bu tür arabirimlerin çoğuna sahiptir .
Örnek
Consumer
Bir değişkende lambda ifadesini saklamak için Java'nın arayüzünü kullanın :
import java.util.ArrayList;
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
Consumer<Integer> method = (n) -> { System.out.println(n); };
numbers.forEach( method );
}
}
Bir yöntemde lambda ifadesi kullanmak için, yöntemin türü olarak tek yöntem arabirimine sahip bir parametreye sahip olması gerekir. Arayüzün yöntemini çağırmak lambda ifadesini çalıştırır:
Örnek
Parametre olarak lambda ifadesi alan bir yöntem oluşturun:
interface StringFunction { String run(String str);
}public class Main { public static void main(String[] args) { StringFunction exclaim = (s) -> s + "!"; StringFunction ask = (s) -> s + "?"; printFormatted("Hello", exclaim); printFormatted("Hello", ask);
}public static void printFormatted(String str, StringFunction format) { String result = format.run(str); System.out.println(result);
}}