新しい変数がEclipseで宣言されている間にプライベート修飾子を自動的に追加する方法はありますか?
ある意味で、プライベートへのデフォルトのアクセスをオーバーライドしたいと思います
これを行う方法がわかりません。
ただし、コードの書き方では、必要になることはめったにありません。これは、フィールドを手動で定義することはめったにないためです。代わりに、Eclipse にそれらを作成させます。作成すると、Eclipse によって非公開になります。
typeFoo
の単一フィールドを持つクラスを作成したいとします。皮切りに:bar
int
public class Foo {
}
クラス本体にカーソルを置き、コントロール スペースを押して、提案メニューから [デフォルト コンストラクター] を選択します。あなたは今持っています:
public class Foo {
public Foo() {
// TODO Auto-generated constructor stub
}
}
有益なコメントを削除します。のコンストラクターパラメーターを手動で追加しますbar
。
public class Foo {
public Foo(int bar) {
}
}
次に、カーソルを宣言に置き、bar
control-1 を押します。提案メニューから、「パラメータを新しいフィールドに割り当てる」を選択します。
public class Foo {
private final int bar;
public Foo(int bar) {
this.bar = bar;
}
}
ビンゴ。これで、プライベート フィールドができました。
メソッド内の既存の式からフィールドを作成できる同様の一連の自動操作があります (最初にローカル変数を作成し、次にそれをフィールドに昇格させます)。
パフォーマンスや可読性よりも重要だと考える場合は、次のように比較的便利なソリューションを構成できると思います。私はこれを自分でしません。
クラス変数とインスタンス変数については、環境設定でクラス テンプレートを変更して、これを組み込みます。
private static Object fields = new Object () {
// declare all class variables here
};
private Object vars = new Object () {
// declare all instance variables here
};
ローカル変数の場合、設定でメソッド テンプレートを変更して、これを組み込みます。
private Object locals = new Object () {
// declare all local variables here
};
クラス変数x
は で宣言されfields
ます。で非公開になりthis.class.fields.x
ます。
でインスタンス変数y
を宣言しvars
ます。で非公開になりthis.vars.y
ます。
ローカル変数z
は で宣言されlocals
ます。で非公開になりlocals.z
ます。
これを行うと、プログラム全体が遅くなり、そうでない場合よりも多くのメモリを使用することが予想されます。