อินเทอร์เฟซ java.util.function.UnaryOperator และสามารถใช้เป็นเป้าหมายการกำหนดสำหรับนิพจน์แลมบ์ดา ซึ่งแสดงถึงการดำเนินการบนตัวถูกดำเนินการเดี่ยวซึ่งผลลัพธ์จะเป็นประเภทเดียวกับอินพุต เราสามารถสร้าง UnaryOperator ของเราเองได้โดยใช้อินเทอร์เฟซนี้
วิธีการreplaceAll() ของอินเทอร์เฟซ List ยอมรับอ็อบเจ็กต์ของ UnaryOperator ที่แสดงถึงการดำเนินการเฉพาะ ดำเนินการตามที่ระบุในองค์ประกอบทั้งหมดของรายการปัจจุบัน และแทนที่ค่าที่มีอยู่ด้วยค่าผลลัพธ์
ในตัวอย่างต่อไปนี้ เรากำลังใช้งานอินเทอร์เฟซ UnaryOperator และสร้างออบเจ็กต์ตัวดำเนินการ unary แบบกำหนดเอง และพยายามส่งผ่านเป็นอาร์กิวเมนต์ไปยังเมธอด replaceAll()
ตัวอย่าง
import java.util.ArrayList; import java.util.function.UnaryOperator; class Op implements UnaryOperator<String> { public String apply(String str) { return str.toUpperCase(); } } public class Test { public static void main(String[] args) throws CloneNotSupportedException { ArrayList<String> list = new ArrayList<>(); list.add("Java"); list.add("JavaScript"); list.add("CoffeeScript"); list.add("HBase"); list.add("OpenNLP"); System.out.println("Contents of the list: "+list); list.replaceAll(new Op()); System.out.println("Contents of the list after replace operation: \n"+list); } }
ผลลัพธ์
Contents of the list: [Java, JavaScript, CoffeeScript, HBase, OpenNLP] Contents of the list after replace operation: [JAVA, JAVASCRIPT, COFFEESCRIPT, HBASE, OPENNLP]