如何使用 Collections.emptyList() 实现安全且节省内存的空列表创建?
- 内容介绍
- 相关推荐
本文共计960个文字,预计阅读时间需要4分钟。
该返回的是一个静态单例对象,类型为 `ImmutableCollections.EmptyList(Java 9 及以上)或内部私有静态类(Java 8 及以前)。整个过程中不分配新数组、不创建新对象。所有调用共享同一个实例,内存占用恒定为常量级 —— 本质上就是一个全局共享的空引用容器。
但正因如此,它不允许任何修改操作:调用 add()、remove()、set() 都会立即抛出 UnsupportedOperationException。这不是 bug,是设计使然。
本文共计960个文字,预计阅读时间需要4分钟。
该返回的是一个静态单例对象,类型为 `ImmutableCollections.EmptyList(Java 9 及以上)或内部私有静态类(Java 8 及以前)。整个过程中不分配新数组、不创建新对象。所有调用共享同一个实例,内存占用恒定为常量级 —— 本质上就是一个全局共享的空引用容器。
但正因如此,它不允许任何修改操作:调用 add()、remove()、set() 都会立即抛出 UnsupportedOperationException。这不是 bug,是设计使然。

