Java与Scala的集合相互转换

文章目录

  • 1.java与scala的集合相互转换
  • 2.应用

1.java与scala的集合相互转换

   /**
    * Java与scala集合相互转换
    */
  def test(): Unit ={
    import  scala.collection.JavaConverters._
    //将当前集合转换为Java中的List
    val javaC: util.List[Int] = List(1, 2, 3, 4).asJava
    //Java中集合转换为Scala中集合
    val scalaC: mutable.Buffer[Int] = javaC.asScala
    //将scala的转成想要的类型,如List Array
    scalaC.toList
    scalaC.toArray
  }

2.应用

在flink的开发代码中,很多源码是由java写的,比如flinkConsumer的一个方法中:

public FlinkKafkaConsumer(List topics, DeserializationSchema deserializer, Properties props) {
		this(topics, new KafkaDeserializationSchemaWrapper<>(deserializer), props);
	}

其中参数List topics,是java.util包下的List

那么问题来了:如何在scala代码中传入该集合?

val topic="topicA,topicB"
//topics.split(",").toList scala的List转java的List
import  scala.collection.JavaConverters._
val topicList= topics.split(",").toList.asJava
val kafkaSource = new FlinkKafkaConsumer[String](topicList, new SimpleStringSchema(), properties)

你可能感兴趣的:(Flink)