intellij-ideaJava開発用です。ほとんどのIDEには、評価式とという2つのオプションがあります。は、ステートメントを実行し、デバッグ時に結果を表示します。Evaluate-ExpressionとIntellijを比較したときのステートメントの実行の違いは?
これらの2つのステートメントの実行の違いは何ですか?つまり、2つのオプションが提供される理由は何ですか?
intellij-ideaJava開発用です。ほとんどのIDEには、評価式とという2つのオプションがあります。は、ステートメントを実行し、デバッグ時に結果を表示します。Evaluate-ExpressionとIntellijを比較したときのステートメントの実行の違いは?
これらの2つのステートメントの実行の違いは何ですか?つまり、2つのオプションが提供される理由は何ですか?
主な違いは時計は何度も評価されますが、評価式は手動でのみ評価されます。
式object.incrementX()
があるとします。
これをウォッチ式として設定し、デバッグの通常のプロセス(プログラムの実行、ブレークポイント、ステップ、ステップなどでの停止)を実行すると、x
の値が何度も増分された。
Wheresは、式を評価すると、実行時の制御権を持ちます。
式がの状態に変更された場合は、それをウォッチ式に入れることに注意する必要があります。そうしないと、予測できない結果になることがあります。
式評価機能とは異なり、ウォッチの式はプロジェクトの一部として保持されます。ワッチ式は、常にフレームペインで現在検査されているスタックフレームのコンテキストで評価されます。
一方、式評価は「単一レベル」にしかなりません。式評価内で呼び出されたメソッドが本体内にブレークポイントを持つ場合、このブレークポイントは無視されます。
Evaluate-Expressionとwatchの重要な違いの1つは、Evaluate Expressionを使用している間にパラメータを変更または変更できること(メソッドの場合)、またはそのために他の論理計算を追加できることです。したがって、ウォッチ機能とともに、必要に応じてさまざまなサンプルケースをテストすることで、コードをデバッグすることができます。
あなたの例では、incrementX()は増分後のxの値を返します。 –
はい、可能ですが、voidを返す場合でも、式を評価して状態を変更することができます。 – vikingsteve