ใน Java 9 วิธีการจากโรงงาน ถูกเพิ่มใน คอลเลกชัน API . เราสามารถสร้าง ไม่สามารถแก้ไขได้ รายการ ตั้งค่า และ แผนที่ วัตถุคอลเลกชันเพื่อลดจำนวนบรรทัดของรหัสโดยใช้ List.of(), Set.of(), Map.of() และ Map.ofEntries() เป็นวิธีการแบบคงที่จากโรงงาน เป็นวิธีที่สะดวกในการสร้าง ไม่เปลี่ยนรูป คอลเลกชัน .
ด้านล่างคือ เงื่อนไข สำหรับวิธีการรวบรวมโรงงาน:
- ไม่สามารถเปลี่ยนแปลงโครงสร้างได้
- ไม่อนุญาตองค์ประกอบ null หรือคีย์ null
- สามารถซีเรียลไลซ์ได้หากองค์ประกอบทั้งหมดเป็นแบบซีเรียลไลซ์ได้
- ปฏิเสธองค์ประกอบ/คีย์ที่ซ้ำกัน ณ เวลาที่สร้าง
- ลำดับการวนซ้ำขององค์ประกอบชุดไม่ระบุและอาจมีการเปลี่ยนแปลง
- สิ่งเหล่านี้อิงตามมูลค่า โรงงานสามารถสร้างอินสแตนซ์ใหม่หรือนำอินสแตนซ์ที่มีอยู่มาใช้ซ้ำได้ฟรี ดังนั้น การดำเนินการที่มีความละเอียดอ่อนของข้อมูลประจำตัวบนอินสแตนซ์เหล่านี้ รหัสแฮชของข้อมูลประจำตัว และการซิงโครไนซ์จึงไม่น่าเชื่อถือและสามารถหลีกเลี่ยงได้
ไวยากรณ์
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
ตัวอย่าง
import java.util.Set; public class CollectionsTest { public static void main(String args[]) { System.out.println("Java 9 Introduced a static factory method: of()"); Set<String> immutableCountrySet = Set.of("India", "England", "South Africa", "Australia"); System.out.println(immutableCountrySet); try { immutableCountrySet.add("Newzealand"); } catch(Exception e) { System.out.println("Caught Exception, Adding Entry to Immutable Collection!"); } } }
ผลลัพธ์
Java 9 Introduced a static factory method: of() [South Africa, India, Australia, England] Caught Exception, Adding Entry to Immutable Collection!