Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Điều kiện của các phương thức factory Collection trong Java 9


Trong Java 9, phương thức factory đã được thêm vào Collections API. Chúng ta có thể tạo đối tượng collection list, set, map không thể sửa đổi (unmodifiable) để giảm số dòng mã bằng cách sử dụng chúng. List.of(), Set.of(), Map.of() và Map.ofEntries() là các phương thức factory tĩnh cung cấp cách tiện lợi tạo collection bất biến (immutable).

Dưới đây là các điều kiện cho phương thức factory Collection:

  • Chúng là bất biến về cấu trúc (structurally immutable).
  • Chúng không cho phép phần tử null hoặc khóa null.
  • Chúng có thể tuần tự hóa (serializable) nếu tất cả phần tử đều serializable.
  • Chúng từ chối phần tử/khóa trùng lặp tại thời điểm tạo.
  • Thứ tự lặp của phần tử set là không xác định và có thể thay đổi.
  • Chúng dựa trên giá trị (value-based). Factory tự do tạo instance mới hoặc tái sử dụng instance hiện có. Do đó, các thao tác nhạy cảm với bản đồng nhất (identity-sensitive operations) như identity hash code và đồng bộ hóa trên các instance này là không đáng tin cậy và nên tránh.

Cú pháp

List.of(elements...)
Set.of(elements...)
Map.of(k1, v1, k2, v2)

Ví dụ

import java.util.Set;

public class CollectionsTest {
public static void main(String args[]) {
System.out.println("Java 9 giới thiệu phương thức factory tĩnh: 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("Bắt ngoại lệ, Thêm mục vào Collection bất biến!");
}
}
}

Kết quả

Java 9 giới thiệu phương thức factory tĩnh: of()
[South Africa, India, Australia, England]
Bắt ngoại lệ, Thêm mục vào Collection bất biến!