背景
公司团队鉴于规范,在hashSet().size() == 0
的情况下,规定使用Collections.emptySet()
代替new HashSet()
进行参数传递,从而引发了java.lang.UnsupportedOperationException
问题复现
import java.util.Collections;
import java.util.Set;
public class UnsupportedOperationExceptionTest {
public static void main(String[] args) {
Set<String> emptySet = Collections.emptySet();
emptySet.add("XX");
System.out.println(emptySet);
}
}
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.AbstractCollection.add(AbstractCollection.java:267)
at xxxxx.main(UnsupportedOperationExceptionTest .java:10)
解决方案:
使用new HashSet()
平替