Eclipse w praktyce cz. 2 – nawigacja i refactoring

post_img

W tej części artykułu „Eclipse w praktyce” dowiemy się o skrótach klawiaturowych, pozwalających na łatwiejszą nawigację po klasach i edytorach. Będzie też mowa o zaawansowanych możliwościach dokonywania refactoringu kodu, wspieranych przez Eclipse.

Uwaga: niektóre przykłady skrótów klawiaturowych wymagają wprowadzenia zmian w konfiguracji Eclipse.

1. Nawigacja

F3 – open declaration
Ctrl + click the hyperlinked variable or class

Otwiera deklarację zmiennej lub klasy.

Ctrl Q – where did i Quit editing

Przenosi nas w miejsce, gdzie ostatni raz coś zmienialiśmy.

Ctrl E – go to opened Editor

Gdy mamy otwartych wiele edytorów, możemy się między nimi łatwo przełączać. Ctrl E i wpisujemy początek nazwy żądanego pliku.

Ctrl PgUp(PgDown) – go to previous(next) opened editor

Podobnie jak wyżej, ale tylko przełącza do poprzedniego/następnego edytora.

Ctrl F6 – toggle opened editors

Działanie podobne, ale bardziej przypomina Alt Tab w Windows.

Alt , Alt – hop back and forth through the files you have visited

Jak w opisie. Przeskakujemy między edytowanymi plikami, zgodnie z historią edytowania. Dobre, gdy pracuje się na 2-3 plikach równolegle.

Ctrl Alt H – open call Hierarchy

Pozwala na śledzenie łańcucha wywołań danej metody. Operacja dostępna jest w dwóch kierunkach: podążanie wg metod wywołujących daną metodę oraz schodzenie po metodach wywoływanych przez daną metodę.

Ctrl M – Maximize window

Maksymalizuje okno edytora (lub dowolne inne).

Ctrl Shift L – List all available keyboard shortcuts

Rozwija listę skrótów klawiszowych. Niezbyt przydatne, bo lista jest za długa.

Ctrl F7 – toggle views
Ctrl F8 – toggle perspectives
F12 – return to the editor

2. Hovers

F2 – open javadoc

Otwiera popup z podglądem całego javadoca dla danego elementu.

Shift + Najazd kursorem na klasę/metodę

Otwiera popup z podglądem całej klasy/metody.

3. Refactoring

Do prezentacji refactoringu posłuży następujący fragment kodu:

public static void main(String[] args) {

System.out.println(„hello world”);

System.out.println(„hello world”);

}

Shift Alt L – extract Local variable

Zaznaczamy pierwszy fragment „hello world” i wciskamy Shift Alt L.

Eclipse pyta się o nazwę nowo utworzonej zmiennej – podajemy hw.

Program przypisuje zmiennej zaznaczoną wartość i wstawia ją we wszystkich miejscach, gdzie pojawia się wartość.

Zaznaczony fragment może być oczywiście większy, o ile tylko da się go przypisać do zmiennej.

public static void main(String[] args) {

String hw = „hello world”;

System.out.println(hw);

System.out.println(hw);

}

Shift Alt E Extract constant

Zaznaczamy pierwszy fragment „hello world” i wciskamy Shift Alt E.

Z rozwiniętego menu wybieramy „Extract constant”.

Eclipse automatycznie podaje proponowaną nazwę stałej.

Wybieramy widoczność zmiennej, np. public.

public static final String HELLO_WORLD = „hello world”;

public static void main(String[] args) {

String hw = HELLO_WORLD;

System.out.println(hw);

System.out.println(hw);

}

Shift Alt M – extract Method

Zaznaczamy System.out.println(hw) i wciskamy Shift Alt M.

Podajemy nazwę nowo tworzonej metody printHW.

Eclipse tworzy metodę z odpowiednimi parametrami, wypełnioną zaznaczonym kodem i podmienia podświetlony kod wywołaniem metody.

public static final String HELLO_WORLD = „hello world”;

public static void main(String[] args) {

String hw = HELLO_WORLD;

printHW(hw);

printHW(hw);

}

private static void printHW(String hw) {

System.out.println(hw);

}

Shift Alt I – Inline method / variable

Działa odwrotnie do Shift Alt L.

Ustawiamy kursor na zmiennej hw (nie trzeba jej zaznaczać).

Wciskamy Shift Alt I, potwierdzamy pytanie Eclipsa.

Eclipse podmienia wystąpienia zmiennej hw w danej metodzie na przypisaną jej wcześniej wartość.

public static final String HELLO_WORLD = „hello world”;

public static void main(String[] args) {

printHW(HELLO_WORLD);

printHW(HELLO_WORLD);

}

private static void printHW(String hw) {

System.out.println(hw);

}

Podobnie dzieje się z metodami.

Klikamy na pierwszym wywołaniu printHW i wciskamy Shift Alt I.

Eclipse pyta się tym razem, czy rozwinąć metodę w jednym miejscu, czy we wszystkich, w których jest wywoływana.

Zaznaczamy „Only the selected invocation”.

public static final String HELLO_WORLD = „hello world”;

public static void main(String[] args) {

System.out.println(HELLO_WORLD);

printHW(HELLO_WORLD);

}

private static void printHW(String hw) {

System.out.println(hw);

}

Shift Alt E Convert Local Variable to Field

public class TestClass {

public void test() {

String str = „test”;

}

}

Ustawiamy kursor na zmiennej str i wciskamy Shift Alt E › Convert Local Variable to Field. Podajemy nazwę nowego pola fieldStr. Możemy też wybrać miejsce inicjalizacji pola; dla „Current metod” wynik będzie następujący:

public class TestClass {

private String fieldStr;

public void test() {

fieldStr = „test”;

}

}

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *