NutzCN Logo
问答 nutmap转化为对象失败?
发布于 216天前 作者 xianghongwu 448 次浏览 复制 上一个帖子 下一个帖子
标签:

错误信息:
java.lang.ClassCastException: org.nutz.lang.util.NutMap cannot be cast to com.zgtech.basic.common.dto.basic.StudentDTO

操作步骤:调用接口返回

public class AjaxResult {
    private Integer code;
    private String message;
    private Object data;
    private Integer total;
}

调用接口得到的data数据类型为:Object 然后使用
```
List dataNew=new ArrayList<>();
if (data instanceof ArrayList<?>) {
dataNew = (List) data;
}

```
这段代码进行数据类型转换,,,但是转换之后得到的dataNew的数据类型是,,,List

然后进行 for (StudentDTO studentDTO : dataNew)
循环,就报错

4 回复

肯定挂呀,data是Object,鬼知道后面要变什么类型

正常来讲,开始赋值给data的数据类型为List,后面得到数据时,使用类型转换应该能转化为原来的数据类型吧。
就像,

String a="abcdefg";
Object o=a;
String b=(String)o;
public static void main(String[] args) {

        StudentDTO studentDTO=new StudentDTO();
        studentDTO.setSchoolId("0045454");
        studentDTO.setActiveType("asdfasd");
        Object object=studentDTO;
        StudentDTO studentDTONew= (StudentDTO) object;
        System.out.println(studentDTONew.getSchoolId());
        System.out.println(studentDTONew.getActiveType());
    }

如同这样。

再如这样。

public static void main(String[] args) {

        List<StudentDTO> studentDTOList=new ArrayList<>();
        StudentDTO studentDTO=new StudentDTO();
        studentDTO.setSchoolId("0045454");
        studentDTO.setActiveType("asdfasd");
        studentDTOList.add(studentDTO);

        Object object=studentDTOList;
        List<StudentDTO> studentDTOListNew= (List<StudentDTO>) object;
        for (StudentDTO dto : studentDTOListNew) {
            System.out.println(dto.getSchoolId());
            System.out.println(dto.getActiveType());
        }

    }

这样转化也没问题

添加回复
请先登陆
回到顶部