当我调试时,在断点处停止并“悬停”在源代码中的范围内变量上,弹出窗口显示变量类成员和变量字符串表示。如果我打开了变量窗口并单击范围内变量,则窗口将显示相同的变量类成员和变量字符串表示。
我有Bundle,String,TextView和SplitValueRow类的局部变量[自定义类]
当我将鼠标悬停在变量包上时,显示的字符串表示形式是Bundle类重写的继承的toString()方法返回的字符串。
我的精简自定义类重写了toString()方法:
@Override
public synchronized String toString() {
String s = new String();
s.concat(twValueRight.getText().toString());
return s;
}
问题:在悬停和变量窗口中,为什么我的自定义类重写toString()方法的工作方式与Bundle和String重写toString()方法的工作方式相同?
答案 0 :(得分:0)
如果这是您正在使用的实际代码,则会遇到串联问题。字符串连接不像Java那样工作。你正在返回一个空字符串。
使用:
@Override
public synchronized String toString() {
return twValueRight.getText().toString();
}
或者:
@Override
public synchronized String toString() {
String s = new String();
s = s.concat(twValueRight.getText().toString());
return s;
}