Java’da lambda fonksiyonları hayatınızı nasıl kolaylaştırabilir ?

Java 8 ile birlikte gelen fonksiyonel programlama stili yazılımcıların hayatını ciddi anlamda kolaylaştırmaktadır. Güzel bir örnekle durumu açıklayalım. Diyelim ki size gelen String ifadeleri, kelimelerin uzunluklarına göre sıralamak istiyorsunuz.

public class SortFourWays {
public static void main(String[] args) {
List<String> words = Arrays.asList(args);

// TODO : sort according to String length
}
}

Aklımıza hemen Collections sınıfının sort metodu gelir

 
// Anonymous class
Collections.sort(words, new Comparator<String>() {
public int compare(String s1, String s2) {
return Integer.compare(s1.length(), s2.length());
}
});

İlk tercih Java 8 öncesi çözüm olan Anonymous (isimsiz) sınıf kullanarak bu işi halletmektir. Java Swing veya Apache Wicket da çok kullanılan anonymous sınıfların dezavantajı okumalarının zor olmasıdır. Java 8 fonksiyonel programlama tarzı tam da bu noktada devreye girer. İşte Java 8 ile baştan yazarsak.

// Lambda ifadalesi, anonymous sınıfın yaptığını yapmaktadır
Collections.sort(words,
(s1, s2) -> Integer.compare(s1.length(), s2.length()));

Daha bitmedi, acaba bu Lambda ifadesi daha da kısaltabilir miyiz ?

  Collections.sort(words, comparingInt(String::length)); 

Peki daha da kısası olabilir ?

 words.sort(comparingInt(String::length)); 

Java 8 ile birlikte gelen fonksiyonel programlama stili kodun sadeleşmesine ciddi katkı sunmaktadır ve fakat bu yeni fonksiyonel programlama stili, geleneksel nesneye yönelik programlama dünyasına alışkın olanların ciddi hatalar yapmasına sebebiyet verebilir.

Bu sene 5. düzenlenecek olan Java Day 2019 ‘da fonksiyonel programlama stili uygularken dikkat edilmesi gereken noktaları Brian Vermeer katılımcılara detaylı bir şekilde anlatacaktır.

Java Day 2019 ile ilgili daha detaylı bilgi almak için web adresini ziyaret edebilirsiniz.

Kaynaklar : Effective Java Kitabı : https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/0134685997

2 Comments
  • Posted at 10:18, 14/02/2019

    Levitra Cerco Pilules Cialis En Generique Ou Les Commander Acquistare Consegna Kamagra 24h cialis no prescription Finasteride 1 Mg Equine Reaction To Amoxicillin Safe Site For Viagra Europe

  • Posted at 21:27, 05/03/2019

    Can You Open Keflex Capsule cialis vs viagra Cialis Spedizione Anonima Citotecwalgreens Buy Prednisone Overnight Delivery

Post a Comment

Comment
Name
Email
Website