欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

前后台分离时spring把HashSet自动转换成了ArrayList求大神解答,hashsetarraylist

来源: javaer 分享于  点击 29738 次 点评:210

前后台分离时spring把HashSet自动转换成了ArrayList求大神解答,hashsetarraylist


后台SpringMVC代码:

@RestController
@RequestMapping(“/controller”)
public class TestController {

@RequestMapping(value = "getValue", method = RequestMethod.POST)
public HashMap<String, HashSet<String>> getValue(){
    HashMap<String, HashSet<String>> map = new HashMap<String, HashSet<String>>();
    HashSet<String> set = new HashSet<String>();
    set.add("a");
    map.put("1", set);
    return map;
}

}

前台swt代码:
public class SWTController extends BeanController{

public void getValue(){
    //Template.httpPost是封装好的可以直接调后台的方法
    HashMap<String, HashSet<String>> value= Template.httpPost(
                "controller/getValue", HashMap.class);
    HashSet<String> valueSet = value.get("1");//这里报错
}

}
错误为:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.HashSet
有没有大神给个好一点的解决办法
我的解决办法:
1、 直接把HashSet改成List就好了
2、 在不动后台的情况下

    public void getValue(){
    //Template.httpPost是封装好的可以直接调后台的方法
    HashMap<String, HashSet<String>> value= Template.httpPost(
                "controller/getValue", HashMap.class);
    Object valueObject = value.get("1");
    if(valueObject instanceof ArrayList){
        HashSet<String> valueSet = new HashSet<String>((ArrayList)valueObject);
    }
}

相关文章

    暂无相关文章

用户点评