首页 > 解决方案 > 如何创建一个以集合对象为值的 KStream?

问题描述

我正在研究 Spring 云流 kafka 流活页夹。在我的消费者 bean 方法中,我想以字符串列表作为值返回 KStream -

@Bean
public Function<KStream<Object, String>, KStream<String, List<String>>> method() {
        return input -> {
        /* business logic */
        return KStream<String, List<String>>;
        };
}

是否可以拥有一个以集合为值的 KStream?如果是这样,谁能解释如何创建它?

标签: java-8apache-kafkaapache-kafka-streamsspring-cloud-streamspring-cloud-stream-binder-kafka

解决方案


对于这种情况,您可以调用mapValues()

return input -> {
    return input.mapValues(v -> {
        List<String> list = new LinkedList(); // or any other list implementation
        list.add(v); // or any other logic
        return list;
    }
};

推荐阅读