我想在我的Java程序中使用Scala庫,並且將複雜的Scala地圖轉換爲Java有一些困難。如何將嵌套的複雜Scala地圖轉換爲Java
我使用Scala的對象方法有以下返回類型:scala.collection.mutable.Map<String, Map<Object, Seq<Object>>>
如何將其轉換成一個相當於Java的Map<String, Map<Object, List<Object>>>
?
我已經與JavaConversions和JavaConvertors包,但沒有運氣:(發揮各地
public void getPartitionAssignmentForTopics(final List<String> topics) {
final Seq<String> seqTopics = scala.collection.JavaConversions.asScalaBuffer(topics).toList();
scala.collection.mutable.Map<String, Map<Object, Seq<Object>>> map2 = zkUtils
.getPartitionAssignmentForTopics(seqTopics);
val map:scala.collection.mutable.Map[String, Map[Object, Seq[Object]]] = scala.collection.mutable.Map()
map:
collection.mutable.Map[String, Map[Object, Seq[Object]]] =Map()
map.mapValues(_.mapValues(_.asJava).asJava).asJava
res2:
java.util.Map[String, java.util.Map[Object, java.util.List[Object]]] ={}
}
這並不編譯:)
隨着玩弄我的意思是,我使用下面的代碼要轉換Scala Seq到Java列表: scala.collection.JavaConversions.seqAsJavaList(zkUtils.getAllTopics());
你是什麼意思,「玩過,但沒有運氣」?你發現了'JavaConversions.mapAsJavaMap'嗎?什麼是「不幸」使用它? – Dima
'java.util.Map >> stringMapMap = JavaConversions.mapAsJavaMap(map2);'然後轉換每個項目應該也許工作? –
也許它應該......也許,你應該至少試試? – Dima