如何在Kotlin wApache Beam中扩展DoFn?

问题描述 投票:0回答:1

我试图使用Kotlin来开发一个利用Apache Beam的应用程序,但我得到了这样的警告:"我认为他们在实现中的某个地方使用反射来确定正在使用的特定类型。

 @ProcessElement processElement(String, OutputReceiver), parameter of type DoFn.OutputReceiver<Map<String, String>> at index 1: OutputReceiver should be parameterized by java.util.Map<java.lang.String, ? extends java.lang.String>

我假设在实现中的某个地方,他们使用反射来确定正在使用的特定类型;在Kotlin中是否有办法干净利落地处理这个问题?还是说我需要围绕这样的函数创建一个封装器来进行转换?

kotlin apache-beam
1个回答
0
投票

在没有看到整个类的情况下很难回答,但我认为你可以通过导入java map,并将别名为

import java.util.Map as JavaMap

然后返回一个JavaMap

apache内部的波束反射只考虑了java集合类型,所以像这种情况也可能发生在Iterables或Collection等类型上。

© www.soinside.com 2019 - 2024. All rights reserved.