*LOMBOK*
I really dont understand why anybody needs Lombok just to add Loggers to every class. First off if your adding loggers to every other class, theres something really wrong with your automated tests, that is you dont have enuff of them. You should only have loggers in integration type classes, where unpredictable stuff can go wrong, like doing stuff w/ a database. Loggers should never be present in your own classes that dont talk to the outside world.
I dont understand why anybody needs Lombok. Its interesting for what it does but if you need it your doing something really wrong.
- Anyone writing classes mutable getters/setters should be shot.
- Anybody sprinkling Loggers everywhere should also be shot.
I could list many other reasons for the last, but just the above reasons should be sufficient.
*VALUE TYPES*
This is with regards to the discussion around a theoretical User.isAdmin thing which takes a username, password and i cant remember the rest. .
The Password class is a good idea. However it should just as Mark said just hold the text as a String. Its just characters. The thing that takes the Password knows how to decrypt or whatever the text. IT really bugs me when everything is a String. Take a look at Spring, every parameter is a String. Its very annoying not knowing some of the time exactly what the end type is ( is it a url, host name, the id of another bean etc). Types exist to categorise values use them!