2

次の状況を想定します。プライベートフィールドと、このフィールドを参照または変更する内部クラスがあります。フィールドを保護する必要があるため(デフォルトの可視性) 、コンパイラはこれを警告としてマークします。ここまでは順調ですね。

Eclipse は、このケースの迅速な修正を提供するのに十分賢いです。Eclipse を使用すると、private修飾子が削除されるだけです。

これにより警告は削除されますが、私のコード スタイルとは一致しません。代わりに、プライベートという言葉を保護された言葉に置き換えてください。

Quickfix の動作を変更する方法はありますか?

理解を深めるためのコード例: ActionListener 内の foo は警告としてマークされます

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test {

    private String foo = "bar";

    public void bla() {

        ActionListener al = new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                foo = "whatev";
            }
        };
    }
}

前もって感謝します!

編集: Aleks と Thin Pham に感謝します。defaultprotectedの可視性を誤解していました。それでも、Quickfix を変更する方法はありますか?

4

2 に答える 2

0

私の「スタイル」は、非プライベート フィールドを回避しようとするため、プライベート フィールド用にある種の (必要に応じて保護された) セッターを作成することです。非プライベート フィールドの問題は、派生クラスから発生する可能性のある無効な変更をすべてキャッチするために、基本クラスに多くの追加コードを追加する必要があることです。protected/public セッターがある場合は、このセッターですべての無効な変更をキャッチするだけでよく、残りのクラスはそれについて心配する必要はありません。

場合によっては、プライベートではないフィールドを作成することが絶対に理にかなっていますが、コード例は通常、それらの 1 つではありません (少なくとも私にとっては)。

于 2012-05-22T10:29:00.017 に答える
-1

クイックフィックスは、Eclipse の他のすべてのものと同様に、プラグインによって提供されます。ほとんどの場合、JDT プラグインの 1 つです。あなたが実際にできる唯一のことは、独自のプラグインで独自の Quick Fix を作成することです。

于 2012-05-22T15:40:52.943 に答える