昨天我有一个奇怪的例外,一个班级无法投入到自身 - 这花了我几个时间来解决。
长话短说,原因是我的EJB服务在某些情况下返回一个RandomAccessSubList,在检查了源代码后,我注意到它不是Serializable。
当然我意识到创造这个的人可能比我聪明,但我不禁想到这不是一个特别好的设计决定。
我知道并非所有的List实现都是Serializable,但是为什么不通过提供SubList实例来实现SerialList实现Serializable的子列表实例呢?它肯定会为RandomAccess接口提供此功能。
或者为什么不将RandomAccessSubList标记为Serializable并让原始实现(RandomAccessSubList有引用)担心序列化?