Læringsmål
Forstå grundprincipperne: uforanderlighed / immutability, pure functions, higher‑order functions, og hvornår det giver mening ift. imperativ stil.
Behersk lambda‑udtryk: skrive/anvende lambdas som erstatning for anonyme klasser og øge læsbarhed/vedligeholdelse.
Metodereferencer og funktionelle interfaces: kende
Predicate,Function,Supplier,Consumerog bruge metodereferencer.Brug Stream API: filtrere, mappe, reducere deklarativt på kollektioner.
Funktionskomposition: kombinere funktioner til mere komplekse operationer.
Koncept og formål: kunne forklare streams vs. collections og hvorfor streams understøtter funktionel programmering.
Opret og brug streams: fra kollektioner, arrays, filer; kende forskel på intermediate (fx
filter,map) og terminal (collect,forEach) operationer.Mestring af operationer:
filter,map,reduce,flatMap,sorted,distinctog hvordan de kombineres.Anvend streams i praksis: fx større datasæt, transformationer, refaktorering fra loops til streams.
Behovet for den nye API: kende begrænsningerne i
Date/Calendarog fordelene vedjava.time.Brug kerneklasserne:
LocalDate,LocalTime,LocalDateTimetil repræsentation, parsing, formatering og manipulation.Zoner og tidszoner: arbejde med
ZonedDateTime, konvertere tidszoner, kendeZoneId/ZoneOffset.DurationogPeriod: bruge dem til tidsudregninger og forskelle mellem datoer/tider.DateTimeFormatter: parse og formatere dato/tid, kende prædefinerede og egne mønstre.
Formål: forklare hvorfor generics bruges, og hvordan de giver typesikkerhed og færre runtime-fejl.
Definér egne generiske klasser/metoder: oprette og anvende typeparametre.
Begrænsede typeparametre:
<T extends Number>, samt wildcards? extends/? superfor fleksibilitet.Brug generics i datastrukturer:
List,Set,Mapm.fl.; kende fordele og begrænsninger.
- Formål og fordele: forklare hvorfor records blev introduceret, og hvordan de forenkler data‑bærende klasser.
- Definér og brug records: oprette records, kende syntaks og implicitte metoder (konstruktør, getters,
equals,hashCode,toString). - Kompakt og kanonisk konstruktør: tilføje validering og transformation.
- Tilføj metoder og statiske medlemmer: udvide records med adfærd.
- Brug cases: anvende records til DTO’er, value objects og konfigurationsdata.