Files

16 lines
633 B
Plaintext

== 1. A record does not copy the list you give it ==
leaky.items() = [pen, book, laptop]
after leaky.items().add("phone"), basket = [pen, book, laptop, phone]
== 2. List.copyOf in the compact constructor ==
safe.items() = [pen, book]
safe.items().add(...) -> UnsupportedOperationException
== 3. 'Changing' a record means building a new one ==
safe = SafeOrder[id=A-2, items=[pen, book]]
bigger = SafeOrder[id=A-2, items=[pen, book, charger]]
== 4. A mutable Date component ==
LeakyEvent.when().getTime() after caller mutates d1 = 86400000
SafeEvent.when().getTime() after both mutations = 0