【问题标题】:Using array of maps in Jasper Reports/Scala在 Jasper Reports/Scala 中使用地图数组
【发布时间】:2016-08-11 02:18:23
【问题描述】:

我有以下 Scala 代码,它使用地图数组作为数据源 (JRMapArrayDataSource) 生成 Jasper 报告。如果所有值都具有相同的类型(例如字符串),这很好用,但是当我尝试在 HashMap 中组合字符串和整数时,我得到一个编译错误:

 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");

在 map1 和 map2 的行中,我得到以下信息:

重载方法构造函数 HashMap 和替代方法:(x$1: java.util.Map[_ <: int>

由于我在报告中有两个字符串字段(f1f2)和一个 int 字段(f3),因此我需要在 HashMap 中有这个组合。有什么想法吗?

【问题讨论】:

    标签: scala jasper-reports


    【解决方案1】:

    答案是使用 Any:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      相关资源
      最近更新 更多