慕運(yùn)維8079593
2019-02-28 03:56:20
public class Letter {
public static String addHeader(String text) {
return "head " + text;
}
public static String addFooter(String text) {
return text + " foot";
}
public static String checkSpelling(String text) {
return text.replaceAll("123", "lambda");
}
public static void main(String[] args) {
Function<String, String> addHeader = Letter::addHeader;
Function<String, String> stringStringFunction = addHeader.andThen(Letter::checkSpelling).andThen(Letter::addFooter);
String wan_lbdb = stringStringFunction.apply("123");
System.out.println(wan_lbdb);
}
}
這段代碼為什么輸出的是head lambda foot頭尾的123為什么沒有輸出
1 回答

隔江千里
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個贊
Function
R apply(T t) – 將Function對象應(yīng)用到輸入的參數(shù)上,然后返回計(jì)算結(jié)果。
default <V> Function<T,V> andThen(Function<? super R,? extends V> after) 返回一個先執(zhí)行當(dāng)前函數(shù)對象apply方法再執(zhí)行after函數(shù)對象apply方法的函數(shù)對象。
Function<String, String> addHeader = Letter::addHeader;
Function<String, String> stringStringFunction = addHeader.andThen(Letter::checkSpelling).andThen(Letter::addFooter);
String wan_lbdb = stringStringFunction.apply("123");
System.out.println(wan_lbdb);
andThen 是在 addHeader 增加后續(xù)要執(zhí)行的函數(shù)對象
也就是 (stringStringFunction) = addHeader -> checkSpelling -> addFooter 這樣的執(zhí)行順序
stringStringFunction.apply("123")
addHeader -> checkSpelling -> addFooter = head lambda foot
添加回答
舉報(bào)
0/150
提交
取消