在我的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在低于基本语言结构的级别上实现的。具体来说,它不会调用任何构造函数。" (或者更准确地说,它只调用超类构造函数。