大神们请教个java集合遍历的相关问题

用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个对象是不存在任何继承关系的,所以强转会报错。