4 ms·
And with records you mostly don't need Lombok (unless you really like builders and can't wait for withers in Java).
by krzyk 4y ago
And with records you mostly don't need Lombok (unless you really like builders and can't wait for withers in Java).
- bdangubic 4y agoRecords not being extend(able) is the reason why Lombok is still mostly needed...
- kaba0 4y agoWhy would you need extend over implements? I found sealed interfaces with records really cool.
- vbezhenar 4y agoJPA requires mutable classes. Records ergonomics is terrible if you want to replace data classes with records, even if immutable is OK. You need to write builders. You can't really write code like new Person(id, null, null, null, lastName, firstName, null, null, null, null, null, null, null, age); Withers can help with that, but they're not even in any kind of experimental shape right now, so we have many years to wait for it. Right now records are only fine for very simple use-cases like Point(x, y). Or if you want to write or generate builders. But at this time you don't really save anything, if you can generate a builder, you can generate a class as well.
- krzyk 4y agoYeah, I don't like JPA because of lack of support of immutable types (records or my own classes that don't have setters, only constructor). If you have data class with more than 5 fields then you have it wrong. Builders are like lombok and like field injection: hide poor class design. If using a class hurts, it is badly designed and should hurt until it is refactored/split up into consumable parts. I use records extensively, but those are in most cases converted classes which were small and immutable. JPA being one of the exceptions (a stuck in the past spec)
- kaba0 4y agoWhy not have it like new Person(name, new Address(…))? Nesting is allowed.