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