解决在java中输出的变量的内存

时间:2012-04-23 12:27:50

标签: java swing combobox jcombobox

以下代码用于根据所选日期使用可用时间填充组合框。

但由于某种原因,组合框正在存储数据示例的内存地址:

Restaurant.Time@1a28362
Restaurant.Time@5fcf29
...

我知道它得到了正确的时间。但是我如何实际打印出实际的项目呢?

TimeList times = dbConnector.selectTimes(lblDay.getText());//lblDay stores the date from the jCalendar button
cmbNewResTimes.removeAllItems();
for (int pos1 = 0; pos1 < times.size(); pos1++) {
    cmbNewResTimes.addItem(times.getTimeAt(pos1).toString());
}

2 个答案:

答案 0 :(得分:7)

添加对象实例

首先,将其更改为:

// add the Object, rather than the String representation.
cmbNewResTimes.addItem(times.getTimeAt(pos1));  

设置渲染器

然后设置渲染器,请参阅:

答案 1 :(得分:2)

这意味着Restaurant.Time不会覆盖toString()方法,因此会使用Object提供的默认实现。

如果您希望输出看起来不同,则需要覆盖Restaurant.Time.toString()