Function และ Predicate ทั้ง functional interface ถูกนำมาใช้ใน Java 8 เพื่อใช้การเขียนโปรแกรมเชิงฟังก์ชันใน Java
อินเทอร์เฟซของฟังก์ชันใช้สำหรับการแปลง สามารถรับหนึ่งอาร์กิวเมนต์และสร้างผลลัพธ์ได้ ในอีกด้านหนึ่ง เพรดิเคตยังสามารถยอมรับอาร์กิวเมนต์เดียวเท่านั้น แต่สามารถส่งกลับค่าบูลีนเท่านั้น ใช้สำหรับทดสอบสภาพ
| ซีเนียร์ เลขที่ | คีย์ | ฟังก์ชัน | ภาคแสดง |
|---|---|---|---|
| 1 | พื้นฐาน | สามารถรับพารามิเตอร์ได้ 2 แบบ อันแรกแทนประเภทอาร์กิวเมนต์ประเภทอินพุต และอันที่สองแทนประเภทการส่งคืน | สามารถใช้พารามิเตอร์ประเภทหนึ่งซึ่งแสดงถึงประเภทอินพุตหรือประเภทอาร์กิวเมนต์ |
| 2 | ประเภทการส่งคืน | สามารถคืนค่าประเภทใดก็ได้ | ส่งคืนค่าบูลีนได้เท่านั้น |
| 3 | วิธีการ | มีวิธีการใช้นามธรรม () | มีการทดสอบวิธีนามธรรม () |
| 4. | ใช้ตัวพิมพ์ | สามารถใช้ในการตรวจสอบเงื่อนไขได้ | สามารถใช้สำหรับการแปลงและคืนค่าได้ |
ตัวอย่างภาคแสดง
public class Main {
public static void main(String args[]) {
List<Integer> numList = new ArrayList<>();
numList.add(5);
numList.add(10);
Predicate<Integer> pred = i -> i > 5;
numList.stream().filter(pred).forEach(i -> System.out.println(i));
}
} ตัวอย่างฟังก์ชัน
public class Main {
public static void main(String args[]) {
List<Integer> numList = new ArrayList<>();
numList.add(78);
numList.add(10);
Function<Integer, Integer> fun = i -> i / 2;
numList.stream().map(fun).forEach(System.out::println);
}
}