2013-08-04 13 views
7

Czy istnieje sposób automatycznego dodawania kwalifikatora prywatnego, podczas gdy nowe zmienne są deklarowane w środowisku Eclipse?Automatyczne dodawanie kwalifikatora prywatnego do pól w środowisku Eclipse

W pewnym sensie chciałbym zastąpić domyślny dostęp do prywatnej

+0

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

+0

Zwykle Eclipse zmienia kod tylko wtedy, gdy wyraźnie o to prosi. Jak można się spodziewać tej funkcji? –

+1

@ 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. –

Odpowiedz

3

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).

+0

Nie zawsze używam ctr + 1 lub ctr + 2, ale prawdopodobnie czas zacząć go używać częściej Prawdopodobnie coś użytecznego byłoby uderzenie jakiegoś skrótu podczas podświetlania zmiennej, która czyni ją statyczną, ostateczną lub prywatną (na podstawie na skrócie), ale zaćmienie oczywiście go nie ma. Wiem o akcjach składowania, ale odnoszą się one do całego pliku i nie podoba mi się to, że – akd

+0

Control-1 i control-space są dwoma najważniejszymi naciśnięciami klawiszy w Eclipse, i zdecydowanie powinieneś zacząć używać ich więcej. Oni są wspaniali! Sam w ogóle nie używam kontrolki 2, ale wiem, że wielu ludzi to robi. Tak, szkoda, nie ma skrótów, żeby dostosować takie zmienne. Jest jeszcze wiele przydatnych rzeczy, których Eclipse nie robi, niestety. –

+1

@Tom Anderson Crtl-2 l jest bardzo dobrym wykorzystaniem Ctrl-2 i warto go używać! – reevesy

0

Jeśli wziąć pod uwagę, że dla ciebie ważniejsza niż wydajność i czytelność, przypuszczam, że można skonfigurować stosunkowo wygodne rozwiązanie w następujący sposób. Nie zrobiłbym tego sam.

dla klasy i instancji zmiennych, modyfikowanie szablonu klasy w preferencjach włączyć to:

private static Object fields = new Object() { 
    // declare all class variables here 
}; 

private Object vars = new Object() { 
    // declare all instance variables here 
}; 

Dla zmiennych lokalnych, modyfikowanie szablonu metoda w preferencjach włączenie tego: zmienną

private Object locals = new Object() { 
    // declare all local variables here 
}; 

Class x zostanie zadeklarowane w fields. Będzie prywatny pod numerem this.class.fields.x.

Zmienna instancji y zostanie zadeklarowana w vars. Będzie prywatny pod numerem this.vars.y.

Zmienna lokalna z zostanie zadeklarowana w locals. Będzie prywatny pod numerem locals.z.

Jeśli to zrobisz, możesz oczekiwać, że cały twój program będzie wolniejszy i zużyje więcej pamięci, niż gdyby to zrobił.

Powiązane problemy