在我的程序中,我从Database结果集中获取一个字符串,并将其转换为char数组,如下所示:
emp.nid = rs.getString("nid").toCharArray();
在这部分中没有错误。 String已成功转换为char数组。 但我有另外一个这样的代码:
nid_txt.setText(emp.nid.toString());
这会打印一些怪异的文字。不是原版。为什么会这样?请帮帮我。
答案 0 :(得分:9)
您正在toString
上调用char[]
- 并且继承了Object
的实现,因此您获得char[].class
名称,@然后是哈希宾语。相反,请调用String(char[])
构造函数:
nid_txt.setText(new String(emp.nid));
答案 1 :(得分:4)
这是因为toString()
方法是对象的String表示形式,而不是它包含的字符串。
尝试这样做:
nid_txt.setText(new String(emp.nid));
答案 2 :(得分:2)
而非foo.toString()
执行new String(foo)
。
答案 3 :(得分:1)
您正在调用数组对象上的toString()。尝试:
new String(emp.nid);
你应该看到更好的结果。
答案 4 :(得分:1)
假设emp.nid是字节数组的第二句话是完全错误的。这样的对象中的toString()方法将无法正常工作。尝试根据字节数组创建新的String:
String s = new String(emp.nid);
nid_txt.setText(s);