如何转换HashMap<;字符串,整数>;要映射的参数<;字符串(对象)

如何转换HashMap<;字符串,整数>;要映射的参数<;字符串(对象),map,jasper-reports,hashmap,type-conversion,Map,Jasper Reports,Hashmap,Type Conversion,我想调用JasperFillManager.fillReport(filePath+“.jasper”,param,con);其中param应该接受类型映射。是否有任何解决方案如果您有一个哈希映射,并且需要将其转换为哈希映射,那么以下方法应该可以工作: HashMap<String, Object> objParams = new HashMap<String, Object>(); for (String key : intParams.keyValues()) {

我想调用JasperFillManager.fillReport(filePath+“.jasper”,param,con);其中param应该接受类型映射。是否有任何解决方案

如果您有一个
哈希映射
,并且需要将其转换为
哈希映射
,那么以下方法应该可以工作:

HashMap<String, Object> objParams = new HashMap<String, Object>();
for (String key : intParams.keyValues()) {
    Integer intValue = intParams.get(key);
    objParams.put(key, intValue);
}
HashMap objParams=newhashmap();
for(字符串键:intParams.keyValues()){
整数intValue=intParams.get(key);
objParams.put(key,intValue);
}
其中,
intParams
是您的
HashMap

可能会有一些打字错误,因为这纯粹是即兴的


然后可以将
objParams
传递到
fillReport

如果不在HashMap中指定值类型,Java会隐式地为其提供一种对象类型。 在这种情况下,只需将原始地图声明为


HashMap objParams=新的HashMap()

只需使用构造函数将另一个映射作为参数:

Map<String, Object> map2 = new HashMap<String, Object>(map);
Map-map2=新的HashMap(Map);
请参见此示例:

import java.util.HashMap;
import java.util.Map;

public class Test5 {

    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("1", 1);
        Map<String, Object> map2 = new HashMap<String, Object>(map);
        // etc...
    }
}
import java.util.HashMap;
导入java.util.Map;
公共类测试5{
公共静态void main(字符串[]args){
HashMap=newHashMap();
地图.放(1,1);;
Map map2=新的HashMap(Map);
//等等。。。
}
}
您的.java文件

String url=“jdbc:mysql://127.0.0.1:3306/database";
字符串username=“root”;
字符串密码=”;
String database=“database”;
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
Connection con=DriverManager.getConnection(url、用户名、密码);
JasperReport jc=jaspecompilemanager.compileReport(“F:\\pro\\report.jrxml”)//给出report.jrxml文件路径
//创建hashmap以将数据发送到报表。键应与报表参数相同
HashMap para=新的HashMap();
第8.put段(“名称”、“查莫德”);
第15段“电子邮件”chamodck@gmail.com");
JasperPrint print=JasperFillManager.fillReport(jc,para,新的jrpemptyDataSource());
JasperViewer.viewReport(打印);
con.close();
report.jrxml文件文本字段应如下所示



您能否更具体地说明您正在尝试做什么,以及哪些不起作用?您是否创建了一个<代码> HashMap <代码>,您想传递给<代码> fIrrase< /Cord>?在迭代一个映射时,请考虑在CytoYyStE()上进行迭代,而不是KEYSET()。它的效率更高,因为它不需要每次对键的hashCode()和equals()方法求值以找到相应的值。