2016-08-11 3 views
0

Ich habe den folgenden Scala-Code, der einen Jasper-Bericht mit einem Array von Karten als Datenquelle (JRMapArrayDataSource) generiert. Dies funktioniert gut, wenn alle Werte den gleichen Typ (wie String), aber wenn ich versuche, Strings und ganze Zahlen im HashMap ich einen Kompilierungsfehler erhalten zu kombinieren:Verwenden von Karten in Jasper Reports/Scala

val map1 = new HashMap[String,Object](Map("f1"->"aaa1", "f2"-> "aaa2", "f3" -> 1)) 
val map2 = new HashMap[String,Object](Map("f1"->"bbb1", "f2"-> "bbb2", "f3" -> 2)) 

val dataSource = new JRMapArrayDataSource(Array(map1, map2)); 

val params = new HashMap[String,Object]() 
val jasperPrint = JasperFillManager.fillReport("test1.jasper", params, dataSource); 
JasperExportManager.exportReportToPdfFile(jasperPrint, "test1.pdf"); 

In der Linie der map1 und map2 I erhalten die folgenden:

overloaded method constructor HashMap with alternatives: (x$1: java.util.Map[_ <: String, _ <: Object])java.util.HashMap[String,Object] (x$1: Int)java.util.HashMap[String,Object] cannot be applied to (scala.collection.immutable.Map[String,Any])

Da ich in den Bericht zwei String-Felder (f1 und f2) und ein int Feld (f3) I in der HashMap diese Kombination zu haben brauchen. Irgendwelche Ideen?

Antwort

0

Die Antwort ist Beliebig zu verwenden:

val map1 = new HashMap[String,Any](Map("f1"->"aaa1", "f2"-> "aaa2", "f3" -> 1)) 
Verwandte Themen