在反序列化期间,Flink如何处理POJO中的最终字段?

时间:2018-01-13 19:42:07

标签: serialization deserialization apache-flink flink-streaming

在我的Flink图表中,我有一些带有最终字段的POJO类。这些字段在重载的构造函数中设置。例如,我有一个带有最终字段的Car POJO和一个派生自Car的HybridCar类,如下所示。

public class Car {
   private final int year;
   private final int modelNumber;

   public Car (int year, int modelNumber) {
       this.year = year;
       this.modelNumber = modelNumber;
   }
}

public HybridCar extends Car {

    private final int powerInWatts;

    public HybridCar(int powerInWatts, int year, int modelNumber) {
        super(year, modelNumber);
        this.powerInWatts = powerInWatts;
    }
}

这对Flink有用吗?也就是说,Flink能否使用其内部序列化/反序列化库反序列化该类?

A related SO question/answer on JVM deserialization表示JVM"反序列化是由JVM在低于基本语言结构的级别上实现的。具体来说,它不会调用任何构造函数。" (或者更准确地说,它只调用超类构造函数。

0 个答案:

没有答案