上手く使えばコードをかなり簡潔にできるだろう.以下のコードは3つの文字列操作フィルタをチェインして適用させた例.
package org.tanuneko;
import java.util.function.Function;
import java.util.stream.Stream;
public class FuncComposer {
public FuncComposer() {
}
public void run() throws Exception {
Function<String,String> addPrefixFilter = x -> "***" + x;
Function<String,String> addPostfixFilter = x -> x + "***";
Function<String,String> toLowerCaseFilter = x -> x.toLowerCase();
String base = "WOW";
Function<String,String> composedFilter =
Stream.of(addPrefixFilter, addPostfixFilter, toLowerCaseFilter)
.reduce((func, nxt)->func.compose(nxt))
.orElseGet(Function::identity);
System.out.println(composedFilter.apply(base));
}
public static void main(String args[]) throws Exception {
FuncComposer c = new FuncComposer();
c.run();
}
}
0 件のコメント:
コメントを投稿