Kurs Java 8

Wyrażenia lambda #1

W wersji Java 8 pojawiła się charakterystyczna i tajemnicza strzałka „->” Nie oznacza ona bynajmniej kierunku pisania kodu w Javie 🙂 Strzałka ta jest symbolem wyrażeń lambda. <!– end –> W prostych słowach wyrażenia lambda to funkcje anonimowe. Nie określałbym ich metodami, bo lambda wcale nie przynależy do

Interfejs Funkcjonalny #2

Nie możemy powołać do życia wyrażenia lambda bez interfejsu funkcjonalnego. Dlatego dzisiaj zajmiemy się omówieniem, czym jest taki interfejs. Pomińmy zbędne encyklopedyczne definicje. Zasada jest jedna i bardzo prosta: Interfejs funkcjonalny może zawierać tylko jedną metodę abstrakcyjną i tyle 🙂 Przyjrzyjmy się jeszcze raz takiemu interfejsowi: @FunctionalInterface interface InterfaceCalculation { ​ int calculation(

Praktyczny przykład – kalkulator – lambda i interfejs funkcjonalny #3

W tym odcinku niezwykle prosty przykład zastosowania lambd i interfejsu funkcjonalnego bez fajerwerków 😉 Oczywiście sam przykład jest na wyrost i można go uprościć pomijając nasz interfejs, ponieważ w pakiecie Java 8 mamy gotowy interfejs, który moglibyśmy wykorzystać. Ale o tym jeszcze będzie 🙂 Zacznijmy od naszego interfejsu, który nie jest niespodzianką:

Omówienie interfejsów BiConsumer, BiFunction, BinaryOperator #4

W Java 8 istnieje pokaźna grupa interfejsów funkcjonalnych, które pokrótce będziemy omawiać. Warto zapoznać się ze wszystkimi i wiedzieć, że takie istnieją. Okazuje się, że odpowiadają one na niemalże wszystkie potrzeby programistów i tworzenie swoich interfejsów może być zbędne. Zacznijmy więc, bo długa droga przed nami 😉 Dzisiaj pierwsza część serii

Omówienie interfejsu Predicate #5

W tym wpisie zajmiemy się interfejsem funkcjonalnym Predicate, który sam w sobie posiada dodatkowo kilka defaultowych metod. Predicate jest bardzo prosty i nie kryje w sobie żadnej większej tajemnicy. Jego zadaniem jest wykonywanie operacji logicznych. Tak wygląda Predicate : @FunctionalInterface interface Predicate<T> { ​ /** * Testuje podany argument i zwraca wartość boolean

Omówienie interfejsu BiPredicate #6

Interfejs BiPredicate realizuje te same zadania co Predicate opisany w poprzedniej części. Różnica jest taka, że tym razem możemy przekazać do niego 2 argumenty i wykonać na nich operację logiczną. Zobaczmy, jak wygląda zatem BiPredicate<T,U>, zaskoczenia nie będzie, ale warto poćwiczyć. @FunctionalInterface interface BiPredicate<T, U>

Omówienie interfejsów Consumer, Function, UnaryOperator #7

W tym wpisie zajmiemy się takimi interfejsami jak Consumer, Function, UnaryOperator. <!– end –> Oczywiście są odmianami interfejsów opisanych w tym wpisie. Różnica między nimi jest taka, że działają na pojedynczych argumentach. Praktyki nigdy nie za mało, więc zaczynajmy! Consumer Przed nami interfejs funkcjonalny Consumer<T>

Omówienie interfejsów Supplier oraz BooleanSupplier #8

Dzisiaj zajmiemy się dwoma ciekawymi interfejsami funkcjonalnymi. Pierwszy z nich to Supplier oraz BooleanSupplier. Każdy z tych interfejsów posiada jedną metodę abstrakcyjną. Zaczynajmy więc. Supplier Czyli tak naprawdę dostawca. Posiada abstrakcyjną metodę get(), która po wywołaniu zwróci nam obiekt, który zdefiniowaliśmy w naszej lambdzie. Na początek przyjrzyjmy się jak wygląda

Pozostałe interfejsy funkcjonalne #9

Przed nami ostatnia partia interfejsów funkcjonalnych, jakie znalazły się w Javie 8. Są to wyspecjalizowane wersje interfejsów, które już omówiliśmy w poprzednich odcinkach. Zdefiniowane są na konkretnych typach i głównie tym się różnią od generycznych interfejsów, które omówiliśmy. ObjDoubleConsumer – akceptuje dowolny obiekt i wartość double, nie zwraca wyniku. Jest to

Kontakt

Czy masz jakieś pytanie, chcesz coś zasugerować? Skontaktuj się ze mną!

Pomyślnie zasubskrybowałeś Zacznij Programować
Świetny! Następnie dokończ płatność, aby uzyskać pełny dostęp do Zacznij Programować
Witamy spowrotem! Zalogowałeś się pomyślnie.
Nie można Cię zalogować. Spróbuj ponownie.
Powodzenie! Twoje konto jest w pełni aktywowane, masz teraz dostęp do wszystkich treści.
Powodzenie! Twoje informacje rozliczeniowe zostały zaktualizowane.
Aktualizacja informacji rozliczeniowych nie powiodła się.