用Map params = new HashMap()将params 传入Map.Entry entry : params.entrySet()总是报类型转换异常的错误?
在线等..............................
Map params = new HashMap();这个集合
StringBuilder sb = new StringBuilder();
if (params != null && !params.isEmpty())
{
for (Map.Entry<String, Object> entry : params.entrySet()) {
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode((String) entry.getValue(), "utf-8"))
.append('&');
}
sb.deleteCharAt(sb.length() - 1);
}
这样遍历,总是类型转换异常,大牛们救救命啊
你给map集合params也加上泛型试试
Map params = new HashMap()将params 传入Map.Entry entry : params.entrySet(),你是不是指定的Map的key类型和entry不同,
在创建Map对象的时候,最好指明泛型的类型
Map <String,Object>params = new HashMap<String,Object>();
对于Map.Entry entry : params.entrySet() 这句话,你要知道 params.entrySet()便利出来的对象是 Entry,
你相当于把Object 强制换换位String,能不报错吗? 采纳前面的,初始化params的时候加个类型。
我擦,怎么回复的部分不显示,有意思。
params.entrySet()遍历出来的子对象是 Entry《Ojbcet,Object》
强制转换分为基本类型转换 和 类转换 。
基本类型是位数失精转换,类转换是继承转换,即父类强制转换为子类。
Object对象确实可强制转换为任何对象,自然包括String。
但是Entry 与 Entry这2个对象是不存在任何继承关系的,所以强转会报错。