Guava ForwardingObject、Serializable 和无参数构造函数

Guava ForwardingObject, Serializable and parameterless constructor

来自 guava 的 javadoc ForwardingObject:

Although this class does not implement Serializable, a serializable subclass may be created since this class has a parameter-less constructor.

为什么 class 需要无参数构造函数才能成为 Serializable?我是不是误会了什么,或者这只是 javadoc 中的一个错误?

这只是意味着你可以写:

class MyForwardingFoo extends ForwardingObject implements Serializable {
  //
}

尽管 ForwardingObject 本身不可序列化,但它仍可序列化;提及空构造函数可能不是最好的措辞,但从语言的角度来看,它是实现可串行化的充分条件。更重要的是 ForwardingObject 本身不包含任何 non-serializable 字段。