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); } }