Java不可变ArrayList
集合类在Java中是引用类型,在操作的时候可能不经意间被程序修改,一些初级开发经常会犯类似的错误。这里我们讨论下如何让ArrayList不可改变。本文将演示以下几种方式: JDK Guava Apache Commons Collection4 JDK JDK给我们提供了一个很简便的方式从集合中获取一个不可变集合 Collections.unmodifiableList(List<? extends T> list) 我们可以简单的看一下其实现方式: public static <T> List<T> unmodifiableList(List<? extends T> list) { return (list instanceof RandomAccess ? new UnmodifiableRandomAccessList<>(list) : new UnmodifiableList<>(list)); } image.png 我们可以看到UnmodifiableList内对集合的操作都会抛出异常,所以返回的集...