/* package whatever; // don't place package name! */
import java.util.*;
import java.util.function.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static class Foo<F extends Foo<F>>
{
<V> void myself(final Optional<V> value, final BiConsumer<? super F, V> destination)
{
if (value.isPresent())
{
destination.accept((F) this, value.get());
}
}
}
static class Bar extends Foo<Bar> {
}
void outThere(Bar bar)
{
bar.myself(Optional.of(42), Bar::setAnswer);
}
{
// your code goes here
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLmZ1bmN0aW9uLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKc3RhdGljIGNsYXNzIEZvbzxGIGV4dGVuZHMgRm9vPEY+Pgp7CiAgICA8Vj4gdm9pZCBteXNlbGYoZmluYWwgT3B0aW9uYWw8Vj4gdmFsdWUsIGZpbmFsIEJpQ29uc3VtZXI8PyBzdXBlciBGLCBWPiBkZXN0aW5hdGlvbikKICAgIHsKICAgICAgICBpZiAodmFsdWUuaXNQcmVzZW50KCkpCiAgICAgICAgewogICAgICAgICAgICBkZXN0aW5hdGlvbi5hY2NlcHQoKEYpIHRoaXMsIHZhbHVlLmdldCgpKTsKICAgICAgICB9CiAgICB9Cn0KCnN0YXRpYyBjbGFzcyBCYXIgZXh0ZW5kcyBGb288QmFyPiB7Cgl2b2lkIHNldEFuc3dlcihJbnRlZ2VyIGkpIHt9Cn0KCQp2b2lkIG91dFRoZXJlKEJhciBiYXIpCnsKICAgIGJhci5teXNlbGYoT3B0aW9uYWwub2YoNDIpLCBCYXI6OnNldEFuc3dlcik7Cn0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJfQp9