关于list 使用toString 输出的是地址值的问题


代码

public int getAcStatus(int acId,String acStatus) {
        ArrayList list = new ArrayList<>();
        list = (ArrayList) AcInfoMapper.getAcStatus(acId);

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

或者是
    String str =
AcInfoMapper.getAcStatus(acId);
    System.out.println(str);


输出

com.ac.entity.vo.AcInfoVo@fdsfdwy

原因

是因为默认情况下list并没有从写toString方法,所以会继承Object类的toString 也就是输出地址值,

解决办法

1,自己从写 toString 输出需要的值

2,用其他重写了toString的方法

3,用实体类接收查询到的数据,然后进行输出,或者其他操作

    @Override
    public int getAcStatus(int acId, String acStatus) {
        AcVo acVo = AcMapper.getAcStatus(acId);
        String status = acVo.getAcStatus();
//输出获取到的数据
  System.out.println(acVo.getAcStatus());
  //传入的数据和获取到的数据做对比,相同返回 1 不同返回 -1 if (status.equals(acStatus)) { return 1; } else { return -1; } }

相关