如何在Kotlin w/Apache Beam中扩展DoFn?
尝试将Kotlin用于使用Apache Beam的应用程序时,我得到警告:如何在Kotlin w/Apache Beam中扩展DoFn?,kotlin,apache-beam,Kotlin,Apache Beam,尝试将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.Str
@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>
@ProcessElement ProcessElement(字符串,OutputReceiver),索引1处类型为DoFn.OutputReceiver的参数:OutputReceiver应由java.util.Map参数化
我假设在实现中的某个地方,它们使用反射来确定所使用的特定类型;在科特林有没有一种干净的方法?或者我需要围绕这些函数创建一个包装器来进行转换吗?在没有看到整个类的情况下很难响应,但我认为可以通过导入别名为
将java.util.Map导入为JavaMap
然后返回一个JavaMap
内部apache beam反射只考虑java集合类型,因此类似这种情况也可能发生在Iterables或collection等中。如果不查看整个类,很难做出响应,但我认为可以通过导入别名为
将java.util.Map导入为JavaMap
然后返回一个JavaMap
内部apache beam反射只考虑java集合类型,因此类似这样的情况也可能发生在Iterables或collection等中。在参数中的Kotlin
Map
类之前使用@JvmSuppressWildcards
注释。在Kotlin之前使用@JvmSuppressWildcards
注释映射
参数中的类。