我的代码中有一个错误,我正在尝试修改一个真正是从客户端程序/程序员传入的Guava ImmutableList的List.
测试此问题的最佳方法是什么,而不是在.add()失败时等待异常?
Lou*_*man 10
测试此问题的最佳方法是什么,而不是在.add()失败时等待异常?
如果您不知道返回的列表是否可变,则无论如何都应将其复制到可变集合中.如果返回的列表是另一个ArrayList,那么副本的成本是最小的 - 它会降低到快速的速度System.arraycopy.
(也就是说,客户端库有时会返回可修改的列表,有时候不可修改的列表本身也是一种邪恶行为.)
如果你必须在运行时检查,使用instanceof ImmutableMap或ImmutableCollection或任何是适当.