上手く使えばコードをかなり簡潔にできるだろう.以下のコードは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 件のコメント:
コメントを投稿