Java 8 #6: DateTime API – daty i czas

date api

Nowe DateTime API Nie rzadko w Twojej implementacji będziesz korzystał z danych, które będą wymagać przypisania do nich odpowiednich wartości dat czy czasu. Do JDK w wersji 7 programiści Java byli zmuszeni do korzystania z prostych i mało udanych implementacji zawartych w klasach Date i Calendar. Największe wyzwania jakie stały przed twórcami nowego DateTime API … Dowiedz się więcej

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

Java 8 #1: metody domyślne i statyczne w interfejsach

java 8 interface

Interfejsy w JDK 7 Zanim zacznę opisywać zmiany jakie zaszły w interfejsach w Javie w wersji ósmej, takie jak np. metody domyślne czy metody statyczne, spójrz na moje małe podsumowanie, jak działały one w poprzedniej wersji. Właściwości interfejsów w JDK 7: interfejs implementujesz w klasie a nie dziedziczysz (jak w przypadku klas abstrakcyjnych) interfejs może … Dowiedz się więcej