场景: flink中的算子在初始化时想添加一些外部参数,这些外部参数只有在main启动时才会传入,可能数据的值不同
自已创建了一个类继承了RichFlatMapFunction
public class FlatFunction1 implements FlatMapFunction{ private String a; private String b; // 写了一个带参数的构造器,这样初始化这个算子时,就会在构造器中初始化一些参数, public FlatFunction1(Object c){ //用c初始化 a,b } @Override public void flatMap(String value, Collector
out) { //执行逻辑 } }
通过带参数的构造函数,在算子初始化就可以对算子内部的字段初始化
警告:我这些参数是算子内私有的,也就是private,但是不能写成static修饰的,否则如果是像k8s托管flink集群的这种方式,每一个task虽然都初始化了,但是执行时初始化后的字段还是null



