一、错误描述
在开发中使用Set时报了java.lang.UnsupportedOperationException
import java.util.Set;
public class Set_test {
public static void main(String [] args){
Set<String> names = new HashSet<>();
Map<String,Integer> map = new HashMap<>();
map.put("zhangsan",1000);
map.put("lisi",2000);
map.put("wangwu",10000);
names = map.keySet();
names.add("zhaoliu");
}
}
运行时报错如下:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(AbstractCollection.java:262)
at Set_test.main(Set_test.java:14)
调试后发现,在执行names = map.keySet()后names已经指向HashMap$KeySet,
二、解决办法
将names = map.keySet()调整为names.addAll(map.keySet()),运行通过。
三、调试结果
版权声明:本文为qq_21067307原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。