Java-list中两种不同的对象类型for each遍历时用Object类型,出现了乱码,这事什么意思

发布于 2017-10-08 13:36:14 字数 4012 浏览 1367 评论 2

请输入图片描述

public class cartil {

private String owerid;
private String type;
private String buydate;
private String cph;
public String getOwerid() {
return owerid;
}
public void setOwerid(String owerid) {
this.owerid = owerid;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getBuydate() {
return buydate;
}
public void setBuydate(String date) {
this.buydate = date;
}
public String getCph() {
return cph;
}
public void setCph(String cph) {
this.cph = cph;
}

}

public class person {

private String hostname;
private String hostage;
private String hostid;
private String hostaddress;
public String getHostname() {
return hostname;
}
public void setHostname(String hostname) {
this.hostname = hostname;
}
public String getHostage() {
return hostage;
}
public void setHostage(String hostage) {
this.hostage = hostage;
}
public String getHostid() {
return hostid;
}
public void setHostid(String hostid) {
this.hostid = hostid;
}
public String getHostaddress() {
return hostaddress;
}
public void setHostaddress(String hostaddress) {
this.hostaddress = hostaddress;
}
}

public List selectallbycph(String cph){
List list=new ArrayList();
conn=DBUtil.getconn();
try {
psmt=conn.prepareStatement("select * from modelcar inner join host on host.hostid=modelcar.owerid where cph=?");
psmt.setString(1, cph);
res=psmt.executeQuery();
if(res.next()){
//System.out.print("jsafhjafjas");
cartil c=new cartil();
person p=new person();
c.setBuydate(res.getString("buydate"));
c.setCph(res.getString("cph"));
c.setOwerid(res.getString("owerid"));
c.setType(res.getString("type"));
p.setHostid(res.getString("hostid"));
p.setHostname(res.getString("hostname"));
p.setHostage(res.getString("hostage"));
p.setHostaddress(res.getString("hostaddress"));
list.add(c);
list.add(p);
}
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("车牌号");
dtm.addColumn("证件号");
dtm.addColumn("车型");
dtm.addColumn("购买日期");
dtm.addColumn("用户身份证号");
dtm.addColumn("用户姓名");
dtm.addColumn("用户年龄");
dtm.addColumn("用户地址");
cardao cd = new cardao();
List c = (List) cd.selectallbycph(jTextField1.getText());
Vector v = new Vector();
for(Object s :c){
v.add(s);
}
//v.add(c);
dtm.addRow(v);
jTable1.setModel(dtm);

this.initable();

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清晨说ぺ晚安 2017-10-19 15:43:46

18行断点试一下,从list取出来的Ojbect是Object类型
要或者你试试instanceof判断下类型?

灵芸 2017-10-17 20:14:09

重新看了一下问题, 传入的是一个对象实例, 所以给出dao.person@b6c6a2 这种. 这个不叫乱码啊...
java.lang.Object.toString():

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

如果想得到有意义的数据, 覆写Object的toString()方法.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文