gpt4 book ai didi

java - 返回不可修改的 map

转载 作者:太空狗 更新时间:2023-10-29 22:37:29 26 4
gpt4 key购买 nike

使用 Collections.unmodifiableMap(...) ,我正在尝试返回 map 的不可修改 View 。假设我有以下方法,

public final Map<Foo, Bar> getMap(){
...
return Collections.unmodifiableMap(map);
}

为什么在其他地方做以下事情是合法的,

Map<Foo, Bar> map = getMap();
map.put(...);

这不会抛出 UnsupportedOperationException就像我想的那样。有人可以解释一下,或者建议我如何成功返回真正不可修改的 map 吗?

最佳答案

你确定你没有以某种方式掩盖你的异常吗?这绝对没问题,因为它会抛出 UnsupportedOperationException:

import java.util.*;

public class Test {

public static void main(String[] args) {
Map<String, String> map = getMap();
map.put("a", "b");
}

public static final Map<String, String> getMap(){
Map<String, String> map = new HashMap<String, String>();
map.put("x", "y");
return Collections.unmodifiableMap(map);
}
}

我建议您在方法的返回值上打印出 map.getClass() - 我期望它是一个 UnmodifiableMap .

关于java - 返回不可修改的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7066618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com