//version 8: import java.util.function.Function; public class ValDelegateMethodReference { public void config() { final Column column = createColumn(Entity::getValue); } private Column createColumn(Function func) { return new Column<>(func); } } class Column { public Column(Function vp) { } } class Entity { private MyDelegate innerDelegate; @java.lang.SuppressWarnings("all") public java.lang.String getValue() { return this.innerDelegate.getValue(); } @java.lang.SuppressWarnings("all") public java.lang.Boolean getABoolean() { return this.innerDelegate.getABoolean(); } @java.lang.SuppressWarnings("all") public void setValue(final java.lang.String value) { this.innerDelegate.setValue(value); } @java.lang.SuppressWarnings("all") public void setABoolean(final java.lang.Boolean aBoolean) { this.innerDelegate.setABoolean(aBoolean); } } class MyDelegate { private String value; private Boolean aBoolean; @java.lang.SuppressWarnings("all") public String getValue() { return this.value; } @java.lang.SuppressWarnings("all") public Boolean getABoolean() { return this.aBoolean; } @java.lang.SuppressWarnings("all") public void setValue(final String value) { this.value = value; } @java.lang.SuppressWarnings("all") public void setABoolean(final Boolean aBoolean) { this.aBoolean = aBoolean; } }