[解決済み] Intellijでデバッグ中にリターンする前に戻り値を知ることはできますか?
質問
で。
Object method(){
...
return /* some complex expression */
}
デバッグ中にどのような値が返されるかを確認する方法はありますか?例えば、returnの直後で、呼び出し側のコードに実行が移る前にヒットするブレークポイントを設定するとか? 私は戻り値が何であるかを知ることができ、またすべてのローカル変数の値が何であるかを見ることができるようにしたいと思います。
今のやり方は、テンポラリ変数を作っています。
Object ret = /* something complex */; return ret;
. しかし、それは面倒なことで、さらに不必要な行が追加されます。
注:これは、以下の質問と同じです。 Visual Studioでデバッグ中に、戻る前に戻り値を見つけることはできますか? ただし、intellijの場合。
どのように解決するのですか?
これには2つの方法があるようです。 最初の方法は、メソッドのシグネチャにブレークポイントを設定するもので、あなたの場合、Object method(){ にブレークポイントを設定します。 これにより、メソッドの入口と出口を監視することができます。 これは、"と併用する必要があると思います。 メソッドの戻り値を見る" しかし、計算に時間がかかりすぎるため、完全にはテストできていません。デバッガーのパフォーマンスが劇的に低下し、デバッグに時間がかかるので注意してください。
また、手動で以下のようにすることもできます。
- 戻り線にブレークポイントを設定します。
- 戻り線がヒットしたら、戻り線をクリックし、具体的には見たい操作の上にカーソルを置いて、Run->Evaluate Expression(またはAlt-F8)を実行すると、その時点で式を実行し、返しているものを返してくれるはずです。
備考 : ブレークポイントを作成すると、ブレークポイントでブレークした場合、式を実行し、それをログに残すように指示できるなど、IDEAに指示できることがたくさんあります。 ブレークポイント上で右クリックしてプロパティをクリックすると、できることをいろいろと見ることができます。
アップデイト : 最初の方法と合わせて試してみてください。 メソッドの戻り値を見る" は、デバッグセッションを遅くしたり、フリーズさせたりするようなので、使わないでください。 代わりに次のようにしてください。
- 表示したい戻り値の式を右クリックし、"Add to Watches"をクリックします。
- 次に、上記のようにメソッドブレークポイントを追加します。
- プログラムをデバッグすると、メソッドがメソッドシグネチャでブレークします。
- F9キーを押して続行すると、再びブレークするはずです。 後 の場合、return expression は計算され、watch 列に表示されるはずです。
メソッドブレークポイントは低速であるため、より多くの時間がかかる可能性があることを覚えておいてください。パフォーマンスへの影響が大きすぎると感じる場合にこれを改善するトリッキーな方法は、return文ブレークポイントを(メソッドブレークポイントを持たずに)設定し、次にメソッドブレークポイントを追加する方法です。 後 を実行した後、return文のブレークポイントがヒットして続行します。
お役に立てれば幸いです。
関連
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
javaで非静的な解を静的な参照にすることができない
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
テストが見つかりませんでした
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策
-
[解決済み] IntelliJ IDEAでメソッド/関数を検索するためのショートカットは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
[解決済み] Ctrl Alt F8はディスプレイを切り離す?
-
JQuery DataTable 详解
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
HttpClientがGZIP形式でない場合の対処法
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。
-
[解決済み] Visual Studioでデバッグ中にリターンする前に戻り値を調べることはできますか?