Consumer void fonksiyon gibi düşünülebilir, aldığı paremetre ile sonuç üretmeden işlem yapar. System.out.println kullanarak ekrana yazma Consumer’in kullanılabileceği en iyi örnektir. Lambda expression kullanarak consumerin abstract metotu olan accepti ovveride ederiz.
Consumer<String> ekranaYaz = (x)->System.out.println(x); ekranaYaz.accept("test");
Consumer içerisinde yer alan andThen metotu kullanarak iki tane Consumer zincirlenebilir ve accept metotu çağrıldığında sıralı olarak çalışırlar.
Consumer<String> ekranaYaz = (x)->System.out.println(x); ekranaYaz = ekranaYaz.andThen(x->System.out.println("Log: "+x+" ekrana yazildi")); ekranaYaz.accept("test");
Consumer Çeşitleri
- BiConsumer: Bir yerine iki parametre alır.
- DoubleConsumer: Parametre olarak Double alır
- IntConsumer: Parametre olarak Integer Alır
- LongConsumer: Parametre olarak Long Alır
- ObjDoubleConsumer: İki Parametre biri nesne diğeri Double.
- ObjLongConsumer: İki Parametre biri nesne diğeri Long.
- ObjIntConsumer: İki Parametre biri nesne diğeri Integer.
Consumer Kullanıldığı Yerler
foearch Metotu Consumer Kullanır.
List<String> liste = new ArrayList<>(); liste.forEach(x->System.out.println(x));
Mapler için foreach BiConsumer Kullanır
Map<Integer,String> map = new HashMap<>(); map.forEach((key,value)->System.out.println("Key: "+key+" Value:"+value));