import lombok.Getter; import lombok.Setter; import lombok.experimental.Delegate; import lombok.val; import java.util.function.Function; public class ValDelegateMethodReference { public void config() { val column = createColumn(Entity::getValue); } private Column createColumn(Function func) { return new Column<>(func); } } class Column { public Column(Function vp) {} } class Entity { @Delegate private MyDelegate innerDelegate; } @Getter @Setter class MyDelegate { private String value; private Boolean aBoolean; }