为什么级联BaseOperation扩展可序列化?

时间:2016-12-23 21:04:51

标签: hadoop mapreduce cascading

我想实现一个扩展BaseOperations的函数,如果我的类有一个不可序列化的成员,我会得到一个异常。为什么函数必须可序列化?是否可以使用该成员的java瞬态?在我的函数中使用静态成员是否可以?

1 个答案:

答案 0 :(得分:0)

发布此类问题时,请以精确的方式分享您的代码和错误。

当您将变量声明为瞬态变量时,该变量不具有持久性。所以你不能序列化它。静态字段不用于表示对象的状态。静态字段表示类状态。如果你真的想要序列化,那么你可能需要开发自己的串行器/解串器。

如果一个类有变量和方法来保存和修改状态,那么最好将它序列化。如果变量值发生变化,则表示其状态正在发生变化。 另请注意,BaseOperation类是一个抽象类,因此将BaseOperation作为其父类的任何其他类都将自动进行序列化。