Delegated properties

Kotlin enhances the concept of properties to promote code reuse and make the developer coding task easier. There are many repetitive code snippets you and I could write. Ideally, we should have the following functionality out-of-the-box:

  1. A property value should be computed lazily on its first ever access.
  2. Notify the listeners of a change to one of the values of properties. Have you ever coded in C#? If yes, I am sure the INotifyPropertyChange interface will come to mind.
  3. Use a map to store your fields rather than a materialized field.

Well, good news! Kotlin's delegate properties support all of these. We deal quite often with types for which we need an identifier:

 interface WithId { val id: String } data class WithIdImpl(override ...

Get Programming Kotlin now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.