从 scala.collection.immutable.List 转换为 java 中的 java.util.List
Converting from scala.collection.immutable.List to a java.util.List in java
我目前在 java 运行时 google 云数据流中工作。我正在使用的 scala sdk 显示了我正在使用的 属性 作为不可变列表:https://github.com/snowplow/snowplow-scala-analytics-sdk/blob/master/src/main/scala/com.snowplowanalytics.snowplow.analytics.scalasdk/Event.scala#L91
最终列表 上下文
有没有人知道如何正确地将其转换/转换为 Java 列表?我发现的大多数示例都是在 Scala 运行时与 Java 运行时中执行此操作的。
我原以为 JavaConverters 包可以帮到我,但是这些方法似乎并不需要不可变的 Scala 列表。
下例中的 e 是链接 sdk 中事件的一个实例。
List<SelfDescribingData<Json>> list = JavaConverters.asScalaBufferConverter(e.contexts()).asScala().toList();
for (SelfDescribingData<Json> t : list) {
LOG.info(t.toString());
}
JavaConverters.asScalaBufferConverter
:
Adds an asScala method that implicitly converts a Java List to a Scala mutable Buffer
要将 scala.collection.immutable.List
(scala.collection.immutable.Seq
和 scala.collection.Seq
的子类型转换为 java.util.List
,您可以调用 JavaConverters.asJava
:
java.util.List<SelfDescribingData<Json>> list = JavaConverters.asJava(e.contexts().data())
我发布的代码是在 Scala 2.13 集合重写之后。对于旧版本的 Scala,等效函数是 JavaConverters.seqAsJavaList
我目前在 java 运行时 google 云数据流中工作。我正在使用的 scala sdk 显示了我正在使用的 属性 作为不可变列表:https://github.com/snowplow/snowplow-scala-analytics-sdk/blob/master/src/main/scala/com.snowplowanalytics.snowplow.analytics.scalasdk/Event.scala#L91
最终列表
有没有人知道如何正确地将其转换/转换为 Java 列表?我发现的大多数示例都是在 Scala 运行时与 Java 运行时中执行此操作的。
我原以为 JavaConverters 包可以帮到我,但是这些方法似乎并不需要不可变的 Scala 列表。
下例中的 e 是链接 sdk 中事件的一个实例。
List<SelfDescribingData<Json>> list = JavaConverters.asScalaBufferConverter(e.contexts()).asScala().toList();
for (SelfDescribingData<Json> t : list) {
LOG.info(t.toString());
}
JavaConverters.asScalaBufferConverter
:
Adds an asScala method that implicitly converts a Java List to a Scala mutable Buffer
要将 scala.collection.immutable.List
(scala.collection.immutable.Seq
和 scala.collection.Seq
的子类型转换为 java.util.List
,您可以调用 JavaConverters.asJava
:
java.util.List<SelfDescribingData<Json>> list = JavaConverters.asJava(e.contexts().data())
我发布的代码是在 Scala 2.13 集合重写之后。对于旧版本的 Scala,等效函数是 JavaConverters.seqAsJavaList