为什么这个程序抛出java.lang.UnsupportedOperationException import java.util.Map; 课堂测试{ 公共静态void main(字符串[]args){ Map env=System.getenv(); 系统输出打印LN(环境); 环境资产负债表(“ID”、“1”); } }
我在初始化时在映射中添加了一些键值对,然后又添加了一个键值对,因此程序有什么问题?否您无法修改返回的映射 返回不可修改的映射 返回当前系统环境的不可修改字符串映射视图 原因是,映射包含有关正在运行的系统的信息,您不能简单地通过编程添加信息 我在初始化时在映射中添加了一些键值对 不,你不是。您正在初始化映射引用变量为什么这个程序抛出java.lang.UnsupportedOperationException import java.util.Map; 课堂测试{ 公共静态void main(字符串[]args){ Map env=System.getenv(); 系统输出打印LN(环境); 环境资产负债表(“ID”、“1”); } },java,Java,我在初始化时在映射中添加了一些键值对,然后又添加了一个键值对,因此程序有什么问题?否您无法修改返回的映射 返回不可修改的映射 返回当前系统环境的不可修改字符串映射视图 原因是,映射包含有关正在运行的系统的信息,您不能简单地通过编程添加信息 我在初始化时在映射中添加了一些键值对 不,你不是。您正在初始化映射引用变量env,以引用调用System.getEnv()返回的预先存在的映射 然后再次添加一个键值对,那么程序有什么问题 如上所述,您第一次尝试添加一个键值对。Javadoc用于。它说put方法
env
,以引用调用System.getEnv()
返回的预先存在的映射
然后再次添加一个键值对,那么程序有什么问题
如上所述,您第一次尝试添加一个键值对。Javadoc用于。它说put
方法是一个可选操作。实际上,getEnv()
返回的映射类型不支持put()
你到底想干什么?如果要更改子流程的环境,请使用ProcessBuilder
类,该类允许您指定其他环境变量。如果您试图更改当前进程的环境,则只需创建自己的私有映射,将getEnv()
中的所有条目复制到该映射中,然后在需要时使用自己的映射而不是getEnv()
import java.util.Map;
class Test {
public static void main(String[] args) {
Map<String, String> env = System.getenv();
System.out.println(env);
env.put("ID", "1");
}
}