What troubles me with java is, that the implementors of its standard library utterly failed at setting an example. Java developers don’t know how to do proper christian oo, because every time they peek into the library sources they see C-ish hacks.
Today I realised that PropertyChangeEvent is not implementing equals based on its value.
It is almost immutable, apart from a stupid field that has been added for “future use”. And there is a lot
to be said in favour of immutable objects with value semantics.
This is, what I was trying to do:
ValueHolder holder = new ValueHolder(); holder.setValue("Old"); final PropertyChangeListener listener = mock(PropertyChangeListener.class); holder.addPropertyChangeListener(listener); holder.setValue("New"); verify(listener).propertyChange(new PropertyChangeEvent(holder, "value", "Old", "New"));
It is going to be messy…
Leave a Reply