问题描述
- 关于覆盖和返回的一点疑问
-
public class TbShangpininfo { private String spmc; public String getSpmc(){ return spmc; } public String toString() { return getSpmc(); }
}
TbShangpininfo类重写了toString()方法,
JComboBox sp=new JComboBox();
TbShangpininfo info=new TbShangpininfo();info.setSpmc(res.getString("spmc"));
sp.addItem(info);我想问的是对象info加到sp后是怎么变成字符串的,把toString()中的return语句详细讲解下
解决方案
有一个重载形式是addItem(object),里面调用了toString
info.setSpmc你可能忘了写了应该是
void setSpmc(String s)
{
spmc = s;
}
那么info.setSpmc(res.getString("spmc"));就将资源中的spmc放入了info的spmc成员。
而addItem调用了toString,toString调用了getSpmc,getSpmc返回了spmc,toString返回了getSpmc返回的spmc
public String toString() {
return getSpmc();
}
其实就是
public String toString() {
String result = getSpmc();
return result;
}
解决方案二:
addItem之后,当显示该下拉列表的时候会根据加入的对象类型进行初始化,此时需要根据加入的内容调取toString方法。
时间: 2024-11-18 19:34:12