import groovy.transform.Immutable
@Immutable
class A {
Date d // private final
Date z // private final
/* //no constructor def'n needed with @Immutable
public A(Date D, Date Z) {
d = D
z = Z
}*/
}
A a = new A(new Date(), new Date())
println a // see provided toString()
Date d1 = a.d // get property
assert (d1 == a.d)
d1.setHours(0) // mutate copy of property
assert (d1 != a.d) // this would not pass if class was mutable
println a.d
a.d.setHours(0) // no consequence/ignored
println a.d
No comments:
Post a Comment