不变的静态工厂方法Set.of()可以提供一种方便的方法来在Java 9中创建不可修改的集。
通过使用Set.of()方法创建的集合的实例具有以下特征。通常,通过工厂方法返回的集合是不可变的。这意味着不能从Set中添加,删除或替换元素。在Set上调用任何mutator方法都会导致UnsupportedOperationException。
如果Set包含的元素是可变的,则可能导致Set的内容似乎发生变化。
一个不可变集可以使用静态工厂方法不允许创建空的元素。如果我们尝试使用null元素创建,则会抛出NullPointerException。
在创建不可变的集时,它将拒绝重复的元素。传递给静态工厂方法的重复元素将导致IllegalArgumentException。
set元素的迭代顺序不确定,并且可能会发生变化。
语法Set.of(E... elements)
示例import java.util.Set;
public class SetOfMethodTest {
public static void main(String args[]) {
Set names = Set.of("Adithya", "Bhavish", "Chaitanya", "Jai");
System.out.println("Names - " + names);
names.add("Raja"); // throws UnsupportedOperationException }
}
输出结果Names - [Bhavish, Adithya, Jai, Chaitanya]Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.ImmutableCollections.uoe(Unknown Source)
at java.base/java.util.ImmutableCollections$AbstractImmutableSet.add(Unknown Source)
at SetOfMethodTest.main(SetOfMethodTest.java:8)