.关于构造对象的时候只用了三个变量,最后封装出的对象多出一个变量的问题解决

1.问题描述

//dao层实现类只定义封装进去了三个类
if(result.next()){
    String enamese = result.getString("ename");
    int egendarse= result.getInt("egendar");
    int depidse = result.getInt("depid");
    searchlist.add(new employee(enamese, egendarse, depidse));
}
//entity层String,int,int的构造方法也只有这一个
public employee(String ename, int egendar, int depid) {
    this.ename = ename;
    this.egendar = egendar;
    this.depid = depid;
}
//serviceImpl
@Override
public List<employee> search(int empid) {return this.empdao.search(empid);}
//controller
int empid = Integer.parseInt(req.getParameter("empid"));
List searchlist = this.empservice.search(empid);
String jsonstr = JSON.toJSONString(searchlist.get(0));
System.out.println("controller-search接收到的返回值:"+jsonstr);//因为没有接收empid,故内部的empid默认为0
resp.getWriter().write(jsonstr);
break;

最后传到表现层时输出的对象内数据却多了一个empid
controller层输出的对象

2.原因

entity层编写属性时用的是基本数据类型int,此时构造对象时,就算响应的构造方法没有它的位置,它也会自动赋上默认值并封装进对象内

3.解决方法

在entity实体层编写属性时改用包装数据类型(Integer、Boolean等),这样就不会在构造对象时出现多的属性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值