如何为空arg构造函数提供init方法?

时间:2013-03-31 13:58:36

标签: java oop serialization

我有一些应该是Serializable的类,因此需要一个空参数构造函数。 此外,我想为所有类实现提供一些自定义init()例程。

到目前为止,我在无参数构造函数中只有init()。但是,由于我现在需要一个空的无参数构造函数来进行序列化,我如何确保所有实现的自动执行init()方法?

示例:

abstract class Foo implements Serializable {
   int id;

   Foo() {
      id = UUID.randomUUID();
   }
}

class Bar extends Foo {
   Bar() {}
   Bar(String param) {
      //...
   }
}

这就是我以前的样子。始终为隐式的任何实现调用Foo()构造函数。该实现不必考虑任何UUID代。

如果我必须使Foo()成为Serialization的空构造函数,我怎样才能实现相同目标?

1 个答案:

答案 0 :(得分:0)

  

我有一些应该是Serializable的类,因此需要为空   参数构造函数。

不是强制性的。如果一个类或它的超类是可序列化的,那么在你要将该类扩展到由于构造函数链接而需要的其他类之前,不必在该类中定义无参数构造函数。