【问题标题】:How to initialize HashSet variable during debug in eclipse?如何在 Eclipse 中调试期间初始化 HashSet 变量?
【发布时间】:2016-11-14 20:08:30
【问题描述】:

我正在尝试在 Eclipse 的调试会话期间初始化 Set<String> 变量。所以我右键单击要更改的变量并在“更改对象值”窗口中键入以下表达式:

new HashSet<String>(Arrays.asList(new String[]{"a", "b"}));

Eclipse 返回以下错误:

HashSet cannot be resolved to a type
Arrays cannot be resolved

有什么方法可以在 Eclipse 中的调试会话期间初始化集合?

【问题讨论】:

  • 请注意,您不需要显式创建数组:Arrays.asList("a", "b") 的工作方式相同。

标签: java eclipse


【解决方案1】:

如果您想使用未导入的类(当前文件中没有对应的import 语句),那么您可以通过它们的完全限定名来使用这些类:

new java.util.HashSet<String>(java.util.Arrays.asList(new String[]{"a", "b"}));

【讨论】:

    【解决方案2】:

    更灵活的解决方案是在 Eclipse 的 Debug Perspective 中使用 Display 视图:

    输入:

    yourSet = new java.util.HashSet<String>();
    yourSet.addAll(java.util.Arrays.asList("a", "b"));
    

    然后,选择这些行,右键单击并选择execute 选项。

    这里有一个截图示例:

    Display 视图的优点是您可以对正在调试的变量调用任意数量的操作(例如,Set 上的add()remove())。
    Variables 视图无法执行相同的操作,其中 Change Object Value 选项仅允许将指定值分配给变量。

    Display 视图的其他优点:您可以像在类中编写代码一样编写代码以自然地执行。
    在发现Display 视图后,我不再使用Change Object Value 选项。

    【讨论】:

      【解决方案3】:

      这将起作用:

      Set<String> yourSet =   new HashSet<String>(Arrays.asList("a", "b"));
      

      而你的 eclipse 错误,你需要导入 Java.Util 和 Collection 类。右键单击您班级的任意位置,然后单击“源”>>“组织导入”。

      【讨论】:

        猜你喜欢
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多