Consumer
函數式接口介紹
從JDK8開始java支持函數式編程,JDK也提供了幾個常用的函數式接口,例如Consumer接口。函數式接口(Functional Interface)就是一個有且僅有一個抽象方法,但是可以有多個非抽象方法的接口。Java為函數式接口引入了一個新注解@FunctionalInterface,主要用於函數式接口編譯級錯誤檢查。函數式接口可以被隱式轉換為lambda表達式。
查看源碼
package java.util.function;
import java.util.Objects;
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
default Consumer<T> andThen(Consumer<? super T> after) {
Objects.requireNonNull(after);
return (T t) -> { accept(t); after.accept(t); };
}
}
測試
import java.util.function.Consumer;
public class Test {
public static void printInfo(String[] strArr, Consumer<String> con1, Consumer<String> con2){
for (int i = 0; i < strArr.length; i++) {
con1.andThen(con2).accept(strArr[i]);
}
}
public static void main(String[] args) {
String[] strArr = {"費哥哥,女","歡歡姐,女","嬌嬌妹,女"};
printInfo(strArr,(message)->{
System.out.print("姓名:" + message.split(",")[0] + "。 ");
},(message)->{
System.out.println("性別:" + message.split(",")[1] + "。");
});
}
}
結果:
姓名:費哥哥。 性別:女。
姓名:歡歡姐。 性別:女。
姓名:嬌嬌妹。 性別:女。