2016-11-14 152 views
2

我试图在eclipse中的调试会话期间初始化变量Set<String>。所以,我在可变右键单击要更改,并在“更改对象值”窗口中键入以下公式:如何在eclipse中调试期间初始化HashSet变量?

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

Eclipse中返回以下错误:

HashSet cannot be resolved to a type 
Arrays cannot be resolved 

有没有什么办法来初始化在eclipse中调试会话期间收集?

+1

请注意,您不需要显式数组创建:'Arrays.asList(“a”,“b”)'工作原理相同。 –

回答

2

如果你想使用未导入的类(在当前文件中没有相应的import语句),那么你可以使用完全合格的名称使用这些类:

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

这将工作:

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

而且你的eclipse的错误,你需要导入java.util中和集合类。右键单击课程中的任意位置,然后单击“源”>>“组织导入”。

2

更灵活的解决办法是使用Display视图在Eclipse的Debug Perspective

输入:

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

然后,选择次ese行,右键单击并选择execute选项。

这里用一个屏幕截图的例子:

Display View in Eclipse

Display视图的好处是,只要你想你正在调试的变量(add()remove()Set为例),你可以调用的许多操作。
使用Variables视图执行同样的事情是不可能的,其中Change Object Value选项只允许将指定值分配给变量。

Display的其他优点您可以编写代码以自然的方式在您将代码写入类中时执行。
在发现Display视图后,我再也没有使用Change Object Value选项。