Nie wiem, jak to zrobić.
Jednak sposób, w jaki piszę kod, rzadko bywa konieczny. To dlatego, że rzadko definiuję pola ręcznie; zamiast tego pozwalam Eclipse je tworzyć, a kiedy to robi, czyni je prywatnymi.
Powiedz, że chcę utworzyć klasę Foo
z jednym polem bar
typu int
. Zacznij od:
public class Foo {
}
Umieść kursor w ciele klasy, naciśnij klawisz kontrolny i wybierz "domyślny konstruktor" z menu propozycji. Masz teraz:
public class Foo {
public Foo() {
// TODO Auto-generated constructor stub
}
}
Usuń przydatne komentarz. Teraz ręcznie dodać parametr konstruktora dla bar
:
public class Foo {
public Foo(int bar) {
}
}
teraz umieścić kursor na deklaracji bar
i uderzył CONTROL-1. Z menu propozycji wybierz "przypisz parametr do nowego pola":
public class Foo {
private final int bar;
public Foo(int bar) {
this.bar = bar;
}
}
Bingo. Masz teraz prywatne pole.
Istnieje podobna sekwencja operacji automatycznych, która może utworzyć pole z istniejącego wyrażenia w metodzie (najpierw tworząc zmienną lokalną, a następnie promując ją do pola).
Nie sądzę, że ta funkcja jest naprawdę potrzebna. Jeśli jesteś praktykującym koderem, nie powinno być problemu z napisaniem go przez Youssefa. – MinecraftShamrock
Zwykle Eclipse zmienia kod tylko wtedy, gdy wyraźnie o to prosi. Jak można się spodziewać tej funkcji? –
@ ThorbjørnRavnAndersen: Możesz już powiedzieć Eclipse, aby dodał "final" do pól, gdziekolwiek się da. Jest to operacja zapisywania, więc sprawdza i wykorzystuje możliwości, gdy oszczędzasz. Sprawienie, że pole będzie prywatne, może być wykonane w ten sam sposób. –