Предположим, у меня есть следующий код. Движок инициализируется реализациями этого абстрактного класса, и это сложный класс с хеш-таблицами внутри. Каковы недостатки объявления этого таким образом? Насколько я понимаю, это не сырое и не управляемое состояние. Должен ли я использовать один из них и почему?
Управляемое состояние описано здесь и использует классы, существующие в библиотеке flink (например, ValueState).
Необработанное состояние на другая рука описана здесь и из того, что я вижу, может быть использовано только при расширении класса AbstractStreamOperator, что здесь не так (RichMapFunction расширена). (Пример кода будет оценен по достоинству)
abstract class EmbeddedEngineMap(fsmList: List[FSMInterface],
predList: List[PredictorInterface],
predictorEnabled: Boolean,
expirationTime: Long,
collectStats: Boolean,
finalsEnabled: Boolean,
distance: (Double,Double)) extends RichMapFunction[GenericEvent, Unit] {
protected var engine: ERFEngine = _
....
}