Java / Lombok Interview questions
What is @Delegate used for?
@Delegate (experimental) generates wrapper methods on a class that forward calls to a field's
methods, implementing the composition-based delegation pattern without hand-writing a pass-through method for
every method you want to expose.
public class SortedList { @Delegate private final List<String> items = new ArrayList<>(); } // SortedList now exposes add(), remove(), size(), etc. - all forwarded to `items` // without SortedList itself implementing List or writing any pass-through methods
This gives you composition's flexibility (you're not locked into extending a specific class, and you can
selectively expose only some of the delegate's interface) while avoiding the tedium of manually writing a
forwarding method for every single method on the delegated type — particularly valuable when delegating
to an interface with many methods, like List or Map.
More Related questions...