Poniżej znajdują się opisy niektórych ciekawych i ważnych zmian wprowadzonych w narzędziach programistycznych Java w wersji Eclipse 3.2. Zostały one podzielone na następujące sekcje:
Zmiany wprowadzone w platformie są również opisane w dokumencie Platforma Eclipse - Co nowego w wersji 3.2.
Refaktoryzacja Java
|
|
Refaktoryzacja Wprowadzanie elementu pośredniego |
Wprowadzanie elementu pośredniego to nowa refaktoryzacja, która umożliwia przekierowanie wszystkich programów wywołujących metodę do nowej metody. Z nowej metody jest wywoływana oryginalna metoda. W razie potrzeby domyślną implementację nowej metody można zastąpić inną. Taki element pośredni jest przydatny, gdy wymagane jest wprowadzenie nowego zachowania do metody, ale:
Z elementu pośredniego można korzystać, aby naprawiać w oryginalnej metodzie, lub jako szybkiego sposobu na dodanie kodu przed lub po wszystkich wywołaniach do metody. Aby wykonać refaktoryzację Wprowadzanie elementu pośredniego, zaznacz metodę, wywołaj opcję Refaktoryzacja > Wprowadzanie elementu pośredniego..., a następnie podaj nazwę i klasę deklarującą nowej metody. Metoda zostanie dodana do wybranej klasy deklarującej. A wszystkie odwołania zostaną zaktualizowane, aby wywoływały nową metodę. |
Refaktoryzacja Wyodrębnianie nadklasy |
Nowa refaktoryzacja o nazwie Wyodrębnianie nadklasy wyodrębnia wspólną nadklasę z zestawu typów rodzeństwa. Po zastosowaniu refaktoryzacji wybrane typy rodzeństwa stają się bezpośrednimi podklasami wyodrębnionej nadklasy. Ponadto refaktoryzacja Wyodrębnianie nadklasy umożliwia korzystanie z wyodrębnionej nadklasy w kodzie wszędzie tam, gdzie jest to możliwe. Typami rodzeństwa w następującym przykładzie są Na następnym obrazie jest pokazana hierarchia typów po wyodrębnieniu nadklasy Aby wywołać tę refaktoryzację, użyj opcji Refaktoryzacja > Wyodrębnianie nadklasy. |
Kreator oczyszczania |
Oczyszczanie można wywołać dla dowolnej liczby plików źródłowych Java, pakietów lub całego projektu Java. Ułatwia to:
Poniżej jest przedstawionych kilka przykładowych zastosowań:
Aby przekształcić kod zgodny z Java 1.4 na 5.0, należy za pomocą kreatora Oczyszczania:
Zaznacz projekt, pakiet lub plik, a następnie uruchom kreator, wybierając opcję Źródło > Wyczyść.... |
Historia refaktoryzacji |
Większość refaktoryzacji oferowanych przez środowisko JDT jest teraz śledzonych w historii refaktoryzacji. W infrastrukturze refaktoryzacji są przechowywane szczegółowe informacje o refaktoryzacjach, które zostały wykonane w obszarze roboczym.
|
Tworzenie i stosowanie skryptów refaktoryzacji |
Refaktoryzacje wykonywane w lokalnym obszarze roboczym można teraz wyeksportować do skryptu refaktoryzacji i odtworzyć w dowolnym obszarze roboczym. Takich skryptów refaktoryzacji można używać w różnych scenariuszach, jak np. automatyczne naprawianie zmian przerywających interfejsy API między warstwami oprogramowania lub udostępnianie poprawek o bogatej semantyce. Utwórz skrypt refaktoryzacji z historii refaktoryzacji, korzystając z opcji Refaktoryzacja > Utwórz skrypt.... Aby zastosować wygenerowany skrypt refaktoryzacji w dowolnym obszarze roboczym, użyj opcji Refaktoryzacja > Zastosuj skrypt... Nowy punkt rozszerzenia umożliwia osobom piszącym wtyczki dodanie swojego wkładu do wsparcia refaktoryzacji dla nowych lub już istniejących refaktoryzacji.
Szczegółowe informacje zawiera punkt rozszerzenia |
Eksportowanie plików JAR za pomocą refaktoryzacji |
Podczas eksportowania pliku JAR z obszaru roboczego kreator eksportowania plików JAR oferuje opcję włączenia informacji o refaktoryzacji do pliku JAR.
Następnie możliwa jest migracja klientów ze starej wersji pliku JAR do nowej za pomocą refaktoryzacji Refaktoryzacja > Migruj plik JAR.... Można również użyć akcji Ścieżka budowania > Migruj plik JAR..., jeśli plik JAR jest aktualnie zaznaczony. Ta refaktoryzacja automatycznie aktualizuje cały kod, który jest zależny od starej wersji pliku JAR, aby korzystał z nowej jego wersji. |
Refaktoryzacje rozpoznające interfejs API |
Istnieje pewna liczba refaktoryzacji, które zostały rozszerzone o obsługę zgodności z API przez zachowanie oryginalnej składowej jako delegata do składowej po refaktoryzacji:
Generowanie składowej delegata w celu utrzymania zgodności z interfejsem API można włączyć, zaznaczając pole wyboru Zachowaj oryginalną metodę jako delegata zmienionej metody w oknie dialogowym refaktoryzacji. |
Refaktoryzacja Zmiana nazwy typu aktualizuje elementy o podobnych nazwach |
Refaktoryzacja Zmień nazwę typu może teraz zmieniać nazwy zmiennych i metod podobne do zmienianej nazwy typu. Funkcja ta ułatwia synchronizację nazw metod i zmiennych z nazwami typów. Aby wywołać tę refaktoryzację, zaznacz typ i wybierz opcje Refaktoryzacja > Zmień nazwę. |
Refaktoryzacja Zmiana nazwy pakietu zmienia nazwy podpakietów |
Refaktoryzacja Zmiana nazwy pakietu może obecnie zmieniać na żądanie również nazwy podpakietów. W tym przykładzie nazwa pakietu Aby wywołać tę refaktoryzację, zaznacz pakiet i wybierz opcje Refaktoryzacja > Zmień nazwę. |
Filtrowanie podglądu refaktoryzacji |
Strona podglądu refaktoryzacji obsługuje obecnie filtrowanie zmian. Jest to przydatne zwłaszcza wówczas, gdy użytkownik chce zaktualizować dopasowania tekstowe podczas zmieniania nazw elementów Java. Na zrzucie ekranu jest pokazane okno dialogowe zmieniania, na którym przefiltrowano dopasowania tekstowe podczas zmieniania nazwy klasy Obecnie można filtrować również zmiany związane z widocznością elementów Java. |
Edytor Java
|
|
Dostosowywalny asystent treści |
Za każdym wywołaniem asystenta treści (Ctrl+Spacja na większości platform) są wyświetlane kolejne kategorie propozycji. Istnieje możliwość przypisania osobnych klawiszy skrótów do swoich ulubionych kategorii propozycji oraz skonfigurowania na stronie preferencji
Nowy punkt rozszerzenia |
Obsługa zapisu camel case w trakcie uzupełniania kodu |
W trakcie uzupełniania kodu są obecnie obsługiwane wzorce camel case.
Na przykład jako uzupełnienie NPE zostanie zaproponowany tekst NullPointerException.
To wsparcie można wyłączyć za pomocą preferencji Pokaż dopasowania zapisu camel case na stronie preferencji |
Szybkie menu otaczania kodu |
Nowe szybkie menu Otocz umożliwia otaczanie zaznaczonych wierszy kodem. Menu można rozszerzyć, korzystając z niestandardowych szablonów. Szablony rozpoznają zmienne, które muszą zostać wyciągnięte lub uczynione końcowymi. Wybierz opcje Źródło > Otocz lub naciśnij kombinację klawiszy Alt+Shift+Z, aby bezpośrednio wyświetlić menu. Niestandardowe szablony można dodawać na stronie preferencji Java > Edytor > Szablony. W szablonie niezbędna jest jedynie zmienna |
Nowe szybkie poprawki |
Zostało dodanych kilka nowych szybkich poprawek, jak np.:
|
Obsługa kategorii |
Kategorie można zdefiniować w komentarzach dokumentacji Javadoc dla typów, metod i pól, korzystając ze znacznika Kategorie są wyświetlane w widokach Schemat i Składowe oraz w skróconym schemacie. Z menu widoku można również wybrać widoczne kategorie. |
Wszystkie składowe mogą być zwijane |
Jeśli składanie jest włączone, pola, inicjatory i ich komentarze mogą być zwijane w taki sam sposób jak metody. Istnieją nowe komendy zwijania tekstu umożliwiające zwijanie wszystkich komentarzy i składowych oraz resetowanie struktury zwijania. Komendy te znajdują się w menu kontekstowym Zwijanie edytora Java w pionowej linijce. |
Obsługa linijki dla plików Java poza obszarem roboczym |
W edytorze Java są teraz wyświetlane linijki pionowe oraz strona Schemat. Ponadto w skróconym schemacie można wyświetlić schemat dla zewnętrznych plików Java i plików Java z repozytoriów. |
Kompilator Java
|
|
Zgodność z Java SE 6.0 |
Obecnie jest obsługiwana pełna zgodność z Java SE 6.0.
W szczególności atrybuty |
Analiza odwołań o wartości Null |
Kompilator Java jest obecnie w stanie wykonywać podstawową analizę odwołań o wartości Null dla lokalnych zmiennych. Tę opcjonalną diagnozę można włączyć na stronie preferencji Należy pamiętać, że ta analiza jest dość zachowawcza, dostosowana do reguł precyzyjnego przypisania. Zamiast zastrzeżeń do wszystkich możliwych przypadków uwzględniane są w niej raczej tylko podejrzane przypadki (np. jeśli wartość Null jest następnie sprawdzana). W trybie zgodności z wersją 5.0 ostrzeżenia dotyczące odwołań o wartości Null można wyciszyć, korzystając z adnotacji |
Ulepszone odtwarzanie po błędach składniowych |
Wewnętrzny analizator składni Java jest obecnie o wiele bardziej odporny na błędy składniowe. W środowisku Eclipse 3.1 błąd składniowy uniemożliwiłby wyświetlenie późniejszych błędów. Analizator składni może obecnie zostać odtworzony po instrukcjach z błędami i kontynuować analizę. W następującym przykładzie wykrywane jest nieprawidłowe odwołanie do metody Umożliwia to np. tolerowanie błędów składniowych przez refaktoryzacje, które wpływają tylko na jeden plik. Istnieje obecnie np. możliwość zmiany nazwy lub wyodrębnienia lokalnej zmiennej na metodzie, które nie jest jeszcze całkowicie gotowa. |
Traktowanie błędów z kategorii błędów konfigurowalnych jak błędy niekrytyczne |
Od ustawienia opcji Traktuj błędy z kategorii błędów konfigurowalnych jak błędy krytyczne na stronie preferencji
Jeśli ta opcja jest wyłączona, skompilowany kod można można wykonać mimo tego, że zawiera błędy. |
Wykrywanie niepotrzebnych znaczników $NON-NLS$ |
Każdy niepotrzebny znacznik Zgłaszanie można włączyć i wyłączyć za pomocą tej samej preferencji, która dotyczy wykrywania niezeksternalizowanych łańcuchów.
Można ją ustawić na stronie preferencji
Aby usunąć niepotrzebne znaczniki, należy użyć szybkiej poprawki (Ctrl+1), lub nacisnąć kombinację klawiszy Ctrl+1, Ctrl+Enter, która powoduje usunięcie wszystkich niepotrzebnych znaczników w jednostce kompilacji. |
Wykrywanie użycia typu surowego |
Każde użycie typu surowego jest obecnie wykrywane. Typ surowy jest odwołaniem do pewnego typu ogólnego bez żadnego argumentu typu (np. Tę opcjonalną diagnozę można włączyć niezależnie od niezaznaczonych operacji typu na stronie preferencji To ostrzeżenie można wyciszyć, dodając adnotację Zaimplementowano również szybką poprawkę, która ułatwia rozwiązanie problemu z użyciem typu surowego. |
Wykrywanie przypisań parametrów metody |
Przypisania do parametrów metody uważa się za niedobrą praktykę. Aby takie przypisania były wykrywane i zgłaszane, otwórz stronę preferencji |
Wykrywanie nieużywanych etykiet |
Kompilator Java wykrywa obecnie nieużywane etykiety instrukcji. i Tę opcjonalną diagnozę można włączyć na stronie preferencji |
Wykrywanie niedojścia do skutku instrukcji switch case |
Kompilator Java może obecnie wykrywać, czy możliwe jest wejście do bloku case, gdy poprzedni blok case nie dojdzie do skutku. Puste bloki case są dozwolone. Tę opcjonalną diagnozę można włączyć na stronie preferencji Została zaimplementowana szybka poprawka, aby dodać instrukcję |
Zwiększona wydajność w przypadku dużych plików JAR |
Limit rozmiaru wewnętrznej pamięci podręcznej modelu Java jest obecnie funkcją maksymalnego rozmiaru sterty (argument -Xmx VM w większości maszyn JVM) przyznanego wirtualnej maszynie języka Java, w której jest uruchomione środowisko IDE Eclipse. Podniesienie rozmiaru sterty ma znaczący wpływ na wydajność, jeśli ścieżka klasy budowania zawiera duże pliki JAR. |
Odtwarzanie zmodyfikowanych plików .class |
Program budujący Java może obecnie odtwarzać zmodyfikowane lub usunięte pliki .class w folderze wyjściowym na podstawie oryginalnego kodu źródłowego. Zachowaniem tym można sterować na stronie preferencji
|
Widok dokumentacji Javadoc i podpowiedzi z przyłączonej dokumentacji Javadoc |
W przypadku bibliotek, do których nie jest przyłączony kod źródłowy, informacje dla widoku dokumentacji Javadoc i podpowiedzi dokumentacji Javadoc są obecnie wyodrębniane z przyłączonej dokumentacji Javadoc. |
Narzędzia JUnit |
|
Obsługa JUnit 4 |
Obsługa JUnit została zaktualizowana, aby umożliwić pisanie i wykonywanie testów JUnit 4. Więcej informacji o JUnit 4 można znaleźć na stronie www.junit.org.
|
Historia widoku JUnit |
Widok JUnit może obecnie obsługiwać wiele współbieżnych przebiegów testu. Nowa historia umożliwia przechodzenie między aktywnymi i poprzednimi przebiegami testu. Testy można wykonywać ponownie z historii, nie zatrzymując już działających testów. Działa zarówno z JUnit 3, jak i z JUnit 4. |
Debuger Java |
|
Środowiska wykonawcze |
Środowisko wykonawcze opisuje możliwości danego środowiska, np. J2SE-1.4. Można określić środowiska JRE używane do wykonywania, debugowania i budowania przez odwołanie do środowiska wykonawczego.
Na nowej stronie preferencji
Ścieżka budowania lub konfiguracja uruchamiania odwołująca się do dowolnego środowiska wykonawczego jest bardziej przenośna niż ścieżka lub konfiguracja odwołująca się jawnie do środowiska JRE, ponieważ środowisko wykonawcze JRE można rozpoznać niezależnie od jego nazwy. Aby określić środowisko wykonawcze do wykonywania i budowania, należy użyć karty JRE lub kreatora Edycja biblioteki. |
Zmienna uruchamiania właściwości systemu |
Nowa zmienna uruchamiania umożliwia dynamiczne określanie takich właściwości systemu jak program Java i argumenty maszyny VM ze środowiska wykonawczego Eclipse. Zmienna akceptuje pojedynczy argument będący nazwą właściwości systemu, która ma być rozpoznawana w czasie uruchamiania. Na przykład właściwość java.home będzie rozpoznawana jako ${system_property:java.home}. |
Obsługa wartościowania dla tablic |
W przypadku tablic Java obsługiwany jest obecnie asystent treści i wartościowanie.
Aby odwołać się do wybranej tablicy, należy użyć obiektu |
Grupy wątków Java |
W widoku debugowania można obecnie wyświetlać grupy wątków, zmieniając ustawienie opcji Pokaż grupy wątków w menu Widok. |
Wpisy eksportowane w ścieżce klasy środowiska wykonawczego |
Ścieżkę klasy środowiska wykonawczego można obecnie tak skonfigurować, aby zawierała tylko wpisy eksportowane ze ścieżki budowania. Domyślnie ścieżka klasy środowiska wykonawczego zawiera wszystkie wpisy (eksportowane i nie). Na karcie Ścieżka klasy zaznacz domyślny wpis i naciśnij przycisk Edytuj..., aby skonfigurować opcję. |
Zawieszanie wątku a Zawieszanie maszyny VM |
Do strony preferencji |
Różne
|
|
Indykator typu Java |
Włączenie opcji Indykator typu Java na stronie preferencji
|
Znajdowanie zerwanych łańcuchów zeksternalizowanych |
Jest dostępna nowa akcja służąca do wyszukiwania zerwanych łańcuchów zeksternalizowanych. W trakcie wyszukiwania zgłaszane są brakujące, nieużywane i podwójne klucze. Aby rozpocząć wyszukiwanie, zaznacz plik właściwości, pakiet lub cały projekt i wybierz opcje Źródło > Szukaj zerwanych eksternalizowanych łańcuchów |
Ulepszona obsługa mechanizmu eksternalizacji łańcucha środowiska Eclipse |
Obsługa mechanizmu eksternalizacji łańcucha środowiska Eclipse jest obecnie taka sama jak tradycyjnej eksternalizacji łańcucha. Skojarzona wartość zeksternalizowana jest wyświetlana w podpowiedzi, gdy przytrzymasz kursor nad kluczem zeksternalizowanego łańcucha w edytorze Java. Aby przenieść się bezpośrednio do wpisu w odpowiednim pliku właściwości, należy wykonać kombinację Ctrl+kliknięcie. W edytorze pliku właściwości można użyć kombinacji Ctrl+kliknięcie, aby znaleźć miejsce użycia klucza w kodzie. |
Tworzenie typu z przykładowego fragmentu kodu |
Aby utworzyć nową jednostkę kompilacji, można wkleić fragment kodu zawierający typ Java bezpośrednio do folderu źródłowego lub pakietu
Zaznacz i skopiuj np. ten kod źródłowy
package pack; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }następnie zaznacz folder źródłowy w Eksploratorze pakietów i użyj funkcji Ctrl+V (Edycja > Wklej). Automatycznie zostanie utworzony nowy pakiet pack i plik HelloWorld.java wraz ze skopiowaną treścią. |
Generowanie metod hashCode() and equals() |
Jest dostępna nowa akcja do generowania metod Aby wywołać tę akcję, zaznacz typ i użyj opcji Źródło > Generuj metody hashCode() i equals()... |
Formater kodu wiersza komend |
Istnieje obecnie możliwość sformatowania kodu źródłowego bez uruchamiania interfejsu użytkownika Eclipse, korzystając z nowej, nienadzorowanej aplikacji Formater. Formater wiersza komend działa jako standardowa aplikacja Eclipse. Następująca komenda umożliwia sformatowanie plików źródłowych w folderze src, uwzględniając opcje określone w pliku config.prefs: Szczegółowe informacje zawiera temat Korzystanie z aplikacji Formater. |
Obsługa rozszerzeń specyficznych dla języka Java |
Pliki z rozszerzeniami innymi niż .java i zawierające czysty kod Java są obecnie obsługiwane.
Rozszerzenie specyficzne dla języka Java można dodać na stronie preferencji
|