2015-12-02 09:20:27 -08:00
|
|
|
// functional/TransformFunction.java
|
2016-12-30 17:23:13 -08:00
|
|
|
// (c)2017 MindView LLC: see Copyright.txt
|
2015-12-02 09:20:27 -08:00
|
|
|
// We make no guarantees that this code is fit for any purpose.
|
2016-09-23 13:23:35 -06:00
|
|
|
// Visit http://OnJava8.com for more book information.
|
2015-12-02 09:20:27 -08:00
|
|
|
import java.util.function.*;
|
|
|
|
|
|
|
|
class I {
|
|
|
|
@Override
|
|
|
|
public String toString() { return "I"; }
|
|
|
|
}
|
|
|
|
|
|
|
|
class O {
|
|
|
|
@Override
|
|
|
|
public String toString() { return "O"; }
|
|
|
|
}
|
|
|
|
|
|
|
|
public class TransformFunction {
|
|
|
|
static Function<I,O> transform(Function<I,O> in) {
|
|
|
|
return in.andThen(o -> {
|
|
|
|
System.out.println(o);
|
|
|
|
return o;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
|
|
Function<I,O> f2 = transform(i -> {
|
|
|
|
System.out.println(i);
|
|
|
|
return new O();
|
|
|
|
});
|
|
|
|
O o = f2.apply(new I());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* Output:
|
|
|
|
I
|
|
|
|
O
|
|
|
|
*/
|