2012-03-22 49 views
1

当我正在调试时,停在断点处,并将源代码中的范围内变量悬停在上方,弹出窗口显示变量类成员和变量字符串表示形式。如果我打开一个变量窗口并单击范围内的变量,窗口​​将显示相同的变量类成员和变量字符串表示形式。如何在调试时获取自定义类变量以显示onString()值?

  1. 我有类捆绑,字符串,TextView的和SplitValueRow [自定义类]的局部变量

  2. 当我将鼠标悬停在可变束,所显示的字符串表示是由包类返回的字符串覆盖继承的toString()方法。

  3. 当我将鼠标悬停在变量字符串上时,显示的字符串表示形式是由继承的toString()方法的String类覆盖返回的字符串。
  4. 当我将鼠标悬停在变量textView上时,显示的字符串表示形式是由继承的类[Object] toString()方法返回的字符串。这个类不是重写继承的toString()方法。
  5. 当我将鼠标悬停在变量splitClassRow上时,显示的字符串表示形式是由继承的类[Object] toString()方法返回的字符串。这个类DOES重写继承的toString()方法。

我剥夺了定制类中重写toString()方法:

@Override 
    public synchronized String toString() { 
    String s = new String(); 
    s.concat(twValueRight.getText().toString());   
    return s; 
    } 

的问题:为什么同样的方式没有我的自定义类中重写toString()方法的工作作为捆绑和字符串覆盖toString()方法悬停和变量窗口?

回答

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; 
} 
+0

谢谢您的帮助。 concat不是构建字符串的一种非常高效/优雅的方法。我正在尝试一种“快速和肮脏”的解决方案,我得到了我的奖励! – 2012-03-23 16:50:56

相关问题