2015-03-13 14 views
7

W Eclipse Luna, chcę zmienić zawartość autogenerowanych metod, więc poszedłem do okna-> Preferencje-> Java-> Styl kodu-> Szablony kodu-> Kod- > Ciało metody i widziałem tam tę deklarację:

// ${todo} Auto-generated method stub 
${body_statement} 

Czy można zmienić zawartość $ {body_statement}?

Edycja: @Duncan - Nie chcę, aby moje wygenerowane metody zwracały wartość null, ale chcę, aby zgłaszały wyjątek, że metoda nie jest zaimplementowana. Powodem, dla którego chcę zmienić $ {body_statement} jest to, że chcę zmienić wszystkie wystąpienia przez jedną edycję i nie chcę przechodzić przez wszystkie szablony i sprawdzać je jeden po drugim.

+0

Uważam, że jest to stała i nie można jej zmienić. Wstawia odpowiednią domyślną wartość zwracaną lub wywołuje 'super (...)', odpowiednio. Może być łatwiej, jeśli powiesz nam, co chcesz osiągnąć, być może jest inny sposób. –

Odpowiedz

4

${body_statement} jest "zmienną". Kliknij "Edytuj ..." po prawej stronie listy Szablony kodów, aby edytować szablon kodu i użyj "Wstaw zmienną ...", aby wyświetlić listę dostępnych zmiennych.

Zmienna ${body_statement} jest w rzeczywistości pusta dla nowych metod. Jeśli chcesz podać kod domyślny dla każdej nowej metody, możesz dodać tekst powyżej wartości ${body_statement}.

Dodanie prawdziwego kodu poniżej zmiennej w tym szablonie nie będzie działać, ponieważ ${body_statement} zostanie zastąpione przez oświadczenie return w niektórych przypadkach.

+1

co jeśli po prostu chcę dodać pusty wiersz jako domyślny kod? –

7

Wystarczy usunąć wywołanie $ {body_statement} w szablonie

Oto mój szablon Metoda Ciała który dodaje TODO i wyjątek powinien metoda nazwać:

// ${todo} Implement ${enclosing_type}.${enclosing_method} 
throw new RuntimeException("Unimplemented Method ${enclosing_type}.${enclosing_method} invoked."); 

który po invokded po pisanie

int foo = doSomething(); 

Generuje:

private int doSomething() { 
    // TODO Implement ScaledFraction.doSomething 
    throw new RuntimeException("Unimplemented Method ScaledFraction.doSomething invoked."); 

} 
+3

Preferuję 'UnsupportedOperationException'. – shmosel

Powiązane problemy