2010-04-11 7 views
51

Czy istnieje sposób CTRL + podobny do "auto-budowy" obudowy przełącznika wokół danej Enum Java w Eclipse? Chciałabym dostać stub z wszystkimi przypadkami Enum ...Eclipse: Automatyczne wykańczanie Java Enum z obudową przełącznika

+0

Tylko w przypadku, gdy nie wiesz, ty * * można uzyskać Eclipse do wypełnienia każdego 'oświadczenie case' dla was (wystarczy wpisać' case' a następnie ctrl-space), która już oszczędza spora ilość czasu. Automatycznie wykluczy wartości, które już używałeś, ale nie gwarantuje absolutnie, że nie zapomnisz jednego, jak sugerowany szablon. – MatrixFrog

Odpowiedz

111

Został on w Eclipse przez wieki. Jest to wprawdzie tylko trochę trudne do znalezienia. Pierwsze uruchomienie z

switch (myEnum) { 

} 

W tym momencie kursor zazwyczaj będzie wewnątrz bloku oświadczenie {}. Należy wprowadzić słowo kluczowe ponownie do wiersza ze słowem kluczowym switch i nacisnąć Ctrl + i wybrać Dodaj brakujące instrukcje przypadku. W ten sposób wstawi dowolny możliwy case.

alt text

Byłbyś intuicyjnie oczekiwać ta opcja będzie dostępna wewnątrz blok oświadczenie {} jak dobrze, ale nie.


Aktualizacja: od Eclipse Keplera (a może już Juno, ale to jest tak niestabilna, że ​​nigdy tak naprawdę nie używany), opcja ta jest wreszcie dostępny poprzez Ctrl + wewnątrz rachunku blok też.

enter image description here

+1

Eclipse ma tak wiele funkcji, które są niesamowite, ale trudne do znalezienia. Czy są jakieś dobre szybkie referencje? Był ostatni wątek SO, który miał wiele dobrych wskazówek. –

+4

@Jon: http://stackoverflow.com/questions/54886/hidden-features-of-eclipse – BalusC

+3

Dzięki! Ta odpowiedź pomogła mi odkryć podobną technikę dla NetBeans. Po wpisaniu 'switch (myEnum)', umieść kursor wewnątrz '(' i naciśnij Alt + Enter dla opcji "Dodaj brakujące klauzule"." –

0

Możesz dodawać własne szablony kodów używając: Windows-> Preferencje-> Java-> Edytor-> Szablony.

Po dodaniu szablonu kodu wpisz wystarczającą liczbę znaków nazwy szablonu, aby była unikatowa; wpisz CTRL + Spacja; a zdefiniowany kod zastąpi znaki nazwy szablonu.

Szablon przełącznika jest wstępnie zdefiniowany w Eclipse Galileo. sw + CTRL + Space powinien dać ci instrukcję zmiany. Może być konieczne dostosowanie istniejącego szablonu, aby uzyskać kombinację przełączania.

3

Nie wiem, czy można to zrobić jako szablon, ponieważ szablon musiałby wiedzieć, jakiego typu wyliczeniowego używasz. Ale możesz napisać mały skrypt, aby wydrukować oświadczenie dla ciebie, a następnie po prostu skopiować jego wynik do pliku źródłowego.

public class SwitchWriter { 
    public static void printSwitchStatement(String varName, Class<?> E) { 
    System.out.format("switch(%s) {\n", varName); 
    for (Object o : E.getEnumConstants()) { 
     System.out.format("case %s:\n // TODO: Auto-generated switch statement stub\n break;\n", o); 
    } 
    System.out.println("default:\n // TODO: Auto-generated switch statement stub\n}"); 
    } 
} 

Wyjście SwitchWriter.printSwitchStatement("action", java.awt.Desktop.Action.class):

switch(action) { 
case OPEN: 
    // TODO: Auto-generated switch statement stub 
    break; 
case EDIT: 
    // TODO: Auto-generated switch statement stub 
    break; 
case PRINT: 
    // TODO: Auto-generated switch statement stub 
    break; 
case MAIL: 
    // TODO: Auto-generated switch statement stub 
    break; 
case BROWSE: 
    // TODO: Auto-generated switch statement stub 
    break; 
default: 
    // TODO: Auto-generated switch statement stub 
}