21

IntelliJ IDEAでLombokによって生成されたセッター メソッドにブレークポイントを設定する方法はありますか?

これは、特定のデバッグ シナリオで非常に役立ちます。たとえば、セッターが Hibernate などのフレームワークから呼び出されるタイミングを確認する場合などです。

実際、生成されたセッター メソッドは、IntelliJ IDEA (使用中の Lombok プラグイン) の構造ビューに表示されます。しかし、コンテキスト メニューなどからブレークポイントを設定する方法が見つかりませんでした。

4

5 に答える 5

9

私の理解では、lombok は、変更されたコードに自動生成された部分の行番号がないようにバイトコードを変更しているため、それを行うことはできません。

これは、ソース コード行を常にバイトコードと一致させるために意図的に行われます。それらが一致しないと、ブレークポイントを行に配置しても実行が停止しないか、別の場所で停止するという状況に陥る可能性があります (行番号が一致しないため)。

ただし、代わりに、Lombok は生成されたコードをデバッグする機能を失います (行番号のない行にブレークポイントを配置することはできません)。生成されたコードが正しいという事実に依存する必要があります。

于 2014-07-15T08:11:25.593 に答える
6

ブレークポイントは、暗黙的な関数で機能します。delombok機能により、暗黙的な実装を生成できます(デバッグ後、最初の変更を元に戻すことができます/元に戻す必要があります)。暗黙的な実装を行うには、クラス名を右クリックして次のメニュー行を選択します。

ここに画像の説明を入力

于 2017-12-28T09:44:06.147 に答える
0

構造ビューでセッターを選択し、右クリックします。popup-menu には、メニュー項目「Toggle Method Breakpoint」が含まれています (Java コードにデフォルト コンストラクターがないクラスのデフォルト コンストラクターにブレークポイントを設定するのと同じ方法)。

于 2014-07-15T07:30:46.547 に答える
0

私の勝ち:

  • 実行 -> ブレークポイントの表示 (または Ctrl+Shift+F8)
  • 「+」(または Alt+Ins) をクリックします。
  • '1 を選択します。Java メソッド ブレークポイント」
  • 完全に修飾されたクラス名または「*.MyClass」などのパターンを入力するのは面倒です
  • メソッド名を入力
  • [OK] をクリックします。

6年しかかかりませんでした:-)

Eclipse の場合: クラス アウトラインまたは型階層でメソッドを右クリックし、[メソッド ブレークポイントの切り替え] を選択します。

于 2020-11-16T15:55:33.980 に答える