Consumer類包含兩個方法,一個accept方法用來對輸入的參數進行自定義操作,因為是個抽象方法,是以需要執行個體化對象的時候進行Override,另一個andThen方法跟Function的方法一樣是一個default方法,已經有内部實作是以不需要使用者重寫,并且具體功能也跟Function差不多。Consumer的中文意思是消費者,意即通過傳遞進一個參數來對參數進行操作。
例:
class Foo {
private Integer first;
public Integer getFirst() {
return first;
}
public void setFirst(Integer first) {
this.first = first;
}
}
public static void main(String[] args) {
Foo f = new Foo();
Consumer consumer_fun = foo->foo.setFirst(1);
consumer_fun.accept(f);
System.out.println(f.getFirst());
}
運作結果:
1
andThen方法:
傳回一個先執行目前函數對象apply方法再執行after函數對象apply方法的函數對象
例:
我們把之前的調整下
public static void main(String[] args) {
Foo f = new Foo();
Consumer consumer_fun = foo->foo.setFirst(1);
Consumer consumer_fun_after = foo->foo.setFirst(2);
consumer_fun.andThen(consumer_fun_after).accept(f);
System.out.println(f.getFirst());
}
運作結果:
2