如果使用 Force Step Into,IntelliJ 不会显示 return 值?
IntelliJ doesn't show return value if using Force Step Into?
我正在使用 IntelliJ,只是想知道当我们使用 Force Step Into
调试程序时,return value
没有出现在 Variables
面板中。我启用了 Show Method Return Values
选项。
样本:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("Key", "Value");
Iterator<String> itr = map.keySet().iterator(); // Debug this line
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
Debug A(Using Force Step Into
+ Step Out
): 我只是点击了一次force step into
, then click the step out
once,他们我们可以从keySet()
:
看到returned value
(main frame)
然而,
Debug B 如果我们不用step out
,就一直按force step into
and step out
。直到我们完成 运行 最后一行代码:
Variable
面板上没有显示return value
(主框架)(ks
是return value
)。
我是不是做错了什么?
我试图在我的 IntelliJ 中复制您正在做的事情。我发现,如果您使用 Debug B 选项,如果您一直点击 "force step into",那么 IntelliJ 会继续挖掘得越来越深,并且程序控制会花费很长时间才能回到它 returns main 方法中的值。然而,作为一个非常有耐心的人,我仔细检查了一下,发现最终控制权确实回到了主要方法,然后你会在变量面板中看到 return 值。
我从这个练习中得到的结论是,如果 IntelliJ 有关于 return 值的信息,那么它会显示在调试控制台中。为了让 IntelliJ 获得该信息,它需要等到代码块完成执行。 "force step into",代码块执行时间更长,因此我们不会立即看到 return 值。但是,通过 "step out",代码块完成,我们看到 return 值。
希望对您有所帮助!
我正在使用 IntelliJ,只是想知道当我们使用 Force Step Into
调试程序时,return value
没有出现在 Variables
面板中。我启用了 Show Method Return Values
选项。
样本:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("Key", "Value");
Iterator<String> itr = map.keySet().iterator(); // Debug this line
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
Debug A(Using Force Step Into
+ Step Out
): 我只是点击了一次force step into
step out
oncekeySet()
:
returned value
(main frame)
然而,
Debug B 如果我们不用step out
,就一直按force step into
step out
Variable
面板上没有显示return value
(主框架)(ks
是return value
)。
我是不是做错了什么?
我试图在我的 IntelliJ 中复制您正在做的事情。我发现,如果您使用 Debug B 选项,如果您一直点击 "force step into",那么 IntelliJ 会继续挖掘得越来越深,并且程序控制会花费很长时间才能回到它 returns main 方法中的值。然而,作为一个非常有耐心的人,我仔细检查了一下,发现最终控制权确实回到了主要方法,然后你会在变量面板中看到 return 值。
我从这个练习中得到的结论是,如果 IntelliJ 有关于 return 值的信息,那么它会显示在调试控制台中。为了让 IntelliJ 获得该信息,它需要等到代码块完成执行。 "force step into",代码块执行时间更长,因此我们不会立即看到 return 值。但是,通过 "step out",代码块完成,我们看到 return 值。
希望对您有所帮助!