您好我有这个代码
public void comboCountry(List<Countries> cs) {
country = db.fillComboCountries();
DefaultComboBoxModel dcbm = (DefaultComboBoxModel) CountryComboBox.getModel();
for (int i = 0; i < country.size(); i++) {
String row[] = new String[country.size()];
//row[i] = String.valueOf(country.get(i).getCountryId());
row[i] = country.get(i).getCountryName();
// row[i] = country.get(i).getCountryCode();
dcbm.addElement(row);
}
}
使用country = db.fillComboCountries();
i查询数据库并将所有内容加载到ArrayList中。
Arraylist是国家。
当我将数据加载到组合框中时,我得到了
[Ljava.lang.String;@fdfc58
我怎样才能避免这种情况并获得我想要的价值?
我试过Arrays.tostring()
,但我也得到[]。
答案 0 :(得分:1)
而不是dcbm.addElement(row);
使用dcbm.addElement(country.get(i).getCountryName());
有了这个,你将添加一个数组的单个元素而不是数组本身。此外,您还可以避免使用国家/地区列表中的每个项目创建数组。
答案 1 :(得分:0)
您在每次迭代中创建一个新的String数组,您应该在for循环之前初始化该数组:
String row[] = new String[country.size()];
for (int i = 0; i < country.size(); i++) {
...
}
如果您只想在每次迭代中添加countryName,则根本不需要该数组:
for (int i = 0; i < country.size(); i++) {
String countryName = country.get(i).getCountryName();
dcbm.addElement(countryName);
}
或者:
for (Country c : country) {
dcbm.addElement(c.getCountryName());
}