RosettaCodeData/Task/Delegates/Java/delegates-3.java

20 lines
390 B
Java
Raw Normal View History

2015-02-20 00:35:01 -05:00
package delegate;
import java.util.Optional;
public interface Delegator {
public Thingable delegate();
public Delegator delegate(Thingable thingable);
public static Delegator new_() {
return $Delegator.new_();
}
public default String operation() {
return Optional.ofNullable(delegate())
.map(Thingable::thing)
.orElse("default implementation")
;
}
}