Это, вероятно, не лучшая практика в шторме, но мы работаем с библиотекой, которая требует от нас преобразовать значения кортежа в нашем болте, чтобы отфильтровать только объекты определенного класса.Я знаю, как сделать фильтр, однако я не уверен, как я могу собрать новый кортеж с преобразованным (то есть, фильтрованным) кортежем:
override fun execute(input: Tuple?) {
val filteredValues = input.values.filterIsInstance(MyClass::class.java)
// ? how do I make a new tuple with filteredValues
val newTuple = ...
if (doExecute(newTuple)) {
this.collector.ack(input)
} else {
this.collector.fail(input)
}
}
, где doExecute
вне нашегоуправления, и он принимает только кортеж.
РЕДАКТИРОВАТЬ Я думаю, это возможно, если я создал копию входного кортежа и просто установить values
копии на filteredValues
.Однако мне интересно, есть ли более идиоматический способ?