【问题标题】:How to display variable values by hovering over the variable如何通过将鼠标悬停在变量上来显示变量值
【发布时间】:2018-04-24 10:02:22
【问题描述】:

我习惯于通过悬停元素来直接获取元素的当前值。但是,它在 Eclipse 中的工作方式似乎有所不同。有没有办法改变悬停输出?

示例: 假设我有一个对象“myObject”的ArrayList“列表”,其属性为“name”和“value”。 我想在以下代码行中调试“列表”的元素“i”:

list.get(i).name;

元素 i 包含值 name=Test 和 value=1。我想看到的是“测试”或“名称=测试”悬停在“名称”上。但是,我得到“字符串 packagePath.myObject”。

对于这个简短的元素调用列表,我可以在“myObject”中编写一个“toString”函数来查看正确的输出。但是,如果我连续有更多电话,这实际上不起作用。因此,是否有一个简单的选项可以直接显示我的变量值?

编辑:最小示例

package testHovering;

import java.util.ArrayList;

public class mainHover {

public static void main(String[] args) {
    class myObject{
        public String name;
        public int value;
        public myObject(String name, int value) {
            this.name=name;
            this.value=value;
        }
    }

    ArrayList<myObject> list = new ArrayList<>();

    list.add(new myObject("Test", 1));

    String temp = list.get(0).name; 
    System.out.println(temp);

    System.out.println(list.get(0).name);
}

}

【问题讨论】:

    标签: java eclipse debugging hover


    【解决方案1】:

    用于不定期检查

    您正在寻找的是inspect 选项。
    在调试过程中,由于调试器在语句上暂停,请按照以下步骤操作:

    • 选择要计算的表达式
    • 然后右键单击并选择“检查”或 Ctrl + I

    它将执行选定的表达式。

    这是一个预览:

    请注意,如果表达式对对象本身或其他对象有副作用,它可能会对应用程序行为产生副作用。
    例如,如果您检查一个表达式,例如:

    list.add("a string");
    

    这将执行两次:第一次用于检查,然后第二次用于正常执行。

    定期检查

    如果您需要多次观看一个表达式,使用“观看”功能更合适。
    您可以在调试期间以与检查表达式相同的方式监视表达式,但这次是通过选择“监视”选项。

    这是一个预览:

    【讨论】:

    • 谢谢,但不幸的是它不起作用。我收到错误消息“名称无法解析为变量”。也许我必须建立一个完整的最小示例来向您展示一个特定的用例。不需要重复检查。我对一次性价值检查更感兴趣。
    • 您必须在调试器可解析表达式的时间进行检查,即在您的情况下,对象已初始化并且可在当前执行范围内访问。
    • 我添加了一个最小的例子。可能我做错了什么。我在“String temp = list.get(0).name;”行中标记了“list.get(0).name”现在得到错误“评估必须包含表达式或格式良好的语句块”。
    猜你喜欢
    • 2016-07-20
    • 2013-08-28
    • 1970-01-01
    • 2020-04-11
    • 2011-12-16
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多