Single abstract method (SAM) type
- Le interfacce funzionali sono di tipo SAM
- A ogni metodi che accetta un’interfaccia SAM, si può passare un’espressione lambda compatibile con l’unico metodo dell’interfaccai SAM
- Analogamente per un riferimento a un’interfaccia SAM
Differenze tra classi anonime ed espressioni lambda
- La parola chiave
this
:
- Classi anonime: si riferisce all’oggetto anonimo
- Espressioni lambda: si riferisce all’oggetto della classe che le racchiude
- La compilazione è differente
- Classi anonime: compilate come classi interne
- Espressioni lambda: compilate come metodi privati invocati dinamicamente
Quando utilizzare le lambda?
- Quando il codice si scrive in una sola riga
- In alternativa, si preferisce un’implementazione mediante classe o classe anonima
Strutture dati
- A memorizzare e organizzare i dati in memoria così da utilizzarli in modo efficiente
Collection
- Rese disponibili mediante il framework delle collezioni (Java Collection Framework)
- Con interfacce e algoritmi per manipolarle
- Contengono e “strutturano” riferimenti ad altri oggetti
- Tipicamente tutti “dello stesso tipo”
Alcune interfacce
