2016-09-08 13 views
4

私は、JavaコードからカフカScalaのケースクラスをインスタンス化しようとしている、そしてそれは、次のシグネチャがありますJavaコレクション/リストをScala seqに変換するには?

case class OffsetFetchRequest(groupId: String, 
          requestInfo: Seq[TopicAndPartition], 
          versionId: Short = OffsetFetchRequest.CurrentVersion, 
          correlationId: Int = 0, 
          clientId: String = OffsetFetchRequest.DefaultClientId) 

私はSeq[TopicAndPartition]を除くすべての要求されたパラメータを、送信することができますよ。 Java側で

、私は次のコードを持っている:予想されたように

OffsetFetchRequest offsetFetchRequest = new OffsetFetchRequest(
               "someGroup", 
               topicAndPartitions, 
               (short)1, 
               1, 
               "clientId"); 

を、java.util.ListはスカラSeqと互換性がありません。しかし、私はJavaConversionsJavaConvertersにすべてのタイプの変換方法を試しましたが、このケースに合ったものは何も見つかりません。

java.util.Listまたはjava.util.CollectionからScala seqを作成するにはどうすればよいですか?または私はこれに間違って近づいていますか?

+1

'toList'やその他のSeqサブタイプコンバータについてはどうですか? – puhlen

答えて

5

JavaリストをScalaバッファに変換するscala.collection.JavaConversions.asScalaBufferを使用します。このうち、toListメソッドを使用して不変のseqに変換できます。

代わりに、CyclicIteratorを使用することもできます。

+0

ありがとう! '.asScalaBuffer()。toSeq'を呼び出すことは私のためのトリックでした。 – mjuarez

関連する問題