/* package whatever; // don't place package name! */
import java.util.function.BiFunction;
import java.util.function.UnaryOperator;
import java.util.stream.Stream;
class Price {
private int value;
public Price(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
class Ideone
{
{
BiFunction
<Price,
Integer, Price
> WholesalePrice
= (t, advantage
) -> new Price
(t.
getValue() + advantage
); UnaryOperator<Price> DoublePrice = t -> new Price(t.getValue() * 2);
Stream.of(new Price(120))
.map(DoublePrice)
.map(x -> WholesalePrice.apply(x, 80))
.map(DoublePrice)
.map(x -> WholesalePrice.apply(x, 200))
.mapToInt(Price::getValue)
.
forEach(System.
out::println
); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5mdW5jdGlvbi5CaUZ1bmN0aW9uOwppbXBvcnQgamF2YS51dGlsLmZ1bmN0aW9uLlVuYXJ5T3BlcmF0b3I7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLlN0cmVhbTsKCmNsYXNzIFByaWNlIHsKCXByaXZhdGUgaW50IHZhbHVlOwoKCXB1YmxpYyBQcmljZShpbnQgdmFsdWUpIHsKCQl0aGlzLnZhbHVlID0gdmFsdWU7Cgl9CgoJcHVibGljIGludCBnZXRWYWx1ZSgpIHsKCQlyZXR1cm4gdmFsdWU7Cgl9Cn0KCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlCaUZ1bmN0aW9uPFByaWNlLCBJbnRlZ2VyLCBQcmljZT4gV2hvbGVzYWxlUHJpY2UgPSAodCwgYWR2YW50YWdlKSAtPiBuZXcgUHJpY2UodC5nZXRWYWx1ZSgpICsgYWR2YW50YWdlKTsKCQlVbmFyeU9wZXJhdG9yPFByaWNlPiBEb3VibGVQcmljZSA9IHQgLT4gbmV3IFByaWNlKHQuZ2V0VmFsdWUoKSAqIDIpOwoKCQlTdHJlYW0ub2YobmV3IFByaWNlKDEyMCkpCgkJCQkubWFwKERvdWJsZVByaWNlKQoJCQkJLm1hcCh4IC0+IFdob2xlc2FsZVByaWNlLmFwcGx5KHgsIDgwKSkKCQkJCS5tYXAoRG91YmxlUHJpY2UpCgkJCQkubWFwKHggLT4gV2hvbGVzYWxlUHJpY2UuYXBwbHkoeCwgMjAwKSkKCQkJCS5tYXBUb0ludChQcmljZTo6Z2V0VmFsdWUpCgkJCQkuZm9yRWFjaChTeXN0ZW0ub3V0OjpwcmludGxuKTsKCX0KfQ==