[英]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());
}
}
}
調試A (使用Force Step Into
+ Step Out
):我只單擊了force step into
一次 ,然后單擊一次
step out
,我們可以看到
keySet()
的returned value
(主框架keySet()
:
然而,
如果我們不使用step out
,請調試B ,只需繼續按force step into
然后
step out
。 直到我們完成最后一行代碼為止:
Variable
面板上沒有顯示return value
(主框架)( ks
是return value
)。
難道我做錯了什么?
我試圖復制您在IntelliJ中所做的事情。 我發現的是,在使用Debug B選項的情況下,如果您不斷按“強制步驟”,則IntelliJ會不斷深入,這將需要很長時間才能使程序控件返回到返回值的位置在主要方法中。 但是,作為一個非常有耐心的人,我經歷了一下,發現最終控制確實返回到主方法,然后您將在變量面板中看到返回值。
我從本練習中得出的結論是,如果IntelliJ具有有關返回值的信息,那么它將顯示在調試控制台中。 為了使IntelliJ獲得該信息,它需要等待直到代碼塊完成執行。 通過“強制進入”,代碼塊需要更長的執行時間,因此我們不會立即看到返回值。 但是,通過執行“退出”,代碼塊完成,並且我們看到了返回值。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.