Java 8 #5: zastosowanie Stream API w przetwarzaniu danych

stream api

Ukoronowaniem wszystkich poprzednich lekcji odnośnie Javy 8, jest właśnie biblioteka Stream API. To ona wymusiła na programistach poważne zmiany w samej semantyce języka Java, takich jak choćby lambdy, a co za nimi idzie interfejsy funkcyjne. Strumieniem nazywamy specjalną sekwencję operacji, które można wykonywać jedną po drugim (w formie tzw. pipeline’u), tak aby przekształcić go do … Dowiedz się więcej

Java 8 #4: Optional – pozbądź się null pointerów

typ opakowujacy optional

Czym jest Optional? Jednym z najczęstszych zarzutów do języka Javy jest to, że nie jest to język, które w łatwy sposób radzi sobie z brakiem przypisanej referencji do obiektu (czyli po prostu z null pointerem). Częstość z jaką programiści Javy musieli radzić sobie z nieprzewidywanymi wyjątkami typu null pointer (ang. null pointer exception), że w … Dowiedz się więcej

Java 8 #3: interfejsy funkcyjne – przegląd

przegląd interfejsów funkcyjnych

Różne interfejsy funkcyjne W poprzednim wpisie postarałem się wytłumaczyć, że wyrażenie lambda można z łatwością przekształcić na znaną już Ci klasę anonimową i na odwrót. Nie znaczy to jednak, że obie te struktury są dokładnie tym samym. Będąc bardziej ścisłym wyrażenie lambda jest udostępnioną możliwością przekształcenia fragmentu kodu na obiekt. Wzorcem dla każdego z tych … Dowiedz się więcej

Java 8 #2: wyrażenia lambda i interfejs funkcyjny

lambda expression

Wyrażenie lambda Wyrażenia lambda (ang. lambda expression) są próbą zaimplementowania koncepcji związanych z programowaniem funkcyjnych* w pełni obiektowym języku jakim jest Java. Koncept ten jest bardzo stary, o czym możesz się przekonać czytając chociażby blog Martina Fowlera**. Dotychczas w Javie pewną brzydką alternatywą dla wyrażeń lambda były klasy anonimowe. Sam przyznasz jednak, że nie są … Dowiedz się więcej