Co nowego w wersji 3.1

Ten dokument zawiera opis niektórych ciekawych i ważnych zmian wprowadzonych w środowisku Java development tools w wersji Eclipse 3.1. Dokument jest podzielony na kilka sekcji:

Narzędzie J2SE 5.0


Narzędzie J2SE 5.0

Platforma Eclipse 3.1 w pełni obsługuje nowe funkcje narzędzia J2SE 5.0 (znanego także jako "Tiger"). Jedną z najważniejszych konsekwencji tej obsługi jest fakt, że można jej wcale nie zauważyć. Wszystko, co powinno działać z narzędziem J2SE 1.4 (edytowanie, asystent kodu, kompilowanie, debugowanie, szybkie poprawki, refaktoryzacja, akcje źródła, wyszukiwanie itd.), będzie bezproblemowo działać z nowymi typami i składnią narzędzia J2SE 5.0.

Aby opracować kod zgodny z narzędziem J2SE 5.0, niezbędne będzie środowisko Java Runtime Environment (JRE) w wersji 5.0. Po uruchomieniu po raz pierwszy platformy Eclipse z wersją 5.0 środowiska JRE będzie ono używane domyślnie. W przeciwnym razie niezbędne będzie zarejestrowanie tego środowiska na platformie Eclipse za pomocą okna dialogowego Zainstalowane środowiska JRE. Aby otworzyć to okno dialogowe, należy wybrać opcję Java > Zainstalowane środowiska JRE lub użyć odsyłacza Konfiguruj wartości domyślne w kreatorze nowego projektu Java.

Kreator nowego projektu Java


Szybka poprawka
aktualizująca środowisko JRE i zgodność kompilatora do wersji 5.0

Nowa szybka poprawka pomaga zmienić ustawienia zgodności przy próbie wprowadzenia konstrukcji z wersji 5.0 do projektu z wersji 1.4. Należy zwrócić uwagę, że wymagane jest środowisko JRE 1.5. Można je dodać na stronie preferencji Zainstalowane środowiska JRE.

Szybka poprawka zmieniająca zgodność


Kreatorzy nowych typów obsługują typy ogólne

Kreatorzy nowych typów obsługują następujące pola typów ogólnych narzędzia J2SE 5.0:
  • Pole Nazwa może zawierać deklaracje parametru typu.
  • Nadklasa oraz zaimplementowane Interfejsy mogą zawierać argumenty typu ogólnego.

Obraz przedstawiający kreatora nowego typu


Tworzenie wyliczeń i adnotacji

Kreator nowego wyliczenia lub adnotacji może tworzyć wyliczenia lub adnotacje:

Kreator wyliczenia


Określanie argumentów typu

Asystent kodu wstawia odpowiednie argumenty typu podczas uzupełniania typu w edytorze Java. Jeśli nie będzie możliwe ustalenie jednego argumentu typu, dany argument zostanie wybrany i możliwe będzie przełączanie się między kolejnymi argumentami typu za pomocą klawisza Tab.

W poniższym przykładzie pierwszy argument typu, String, został wstawiony, natomiast drugi, Number, został zaproponowany:

Zrzut ekranu: typ HashMap jest zwracany przez metodę deklarującą Map<String, ? extends Number> jako typ zwracany. String został wstawiony jako pierwszy argument typu, natomiast Number został zaproponowany jako drugi

Aby wypróbować tę funkcję, należy włączyć opcję Wypełnianie nazw argumentów na stronie preferencji Java > Edytor > Asystent kodu.


Deklaracja parametru typu ukrywa inny typ - diagnostyka

Kompilator Java może opcjonalnie oznaczać flagą deklaracje parametru typu ukrywające inny typ.

Obraz przedstawiający edytor Java z ostrzeżeniem o parametrze typu ukrywającym inny typ


Refaktoryzacja metodą zmiany nazw

Funkcja Refaktoryzacja metodą zmiany nazw została rozszerzona o obsługę zmieniania nazw parametrów typu.

Zrzut ekranu przedstawiający zmienianie nazwy parametru typu w klasie ogólnej


Refaktoryzacja metodą ustalania argumentów
typu ogólnego

W narzędziu J2SE 5.0 kod może używać typów ogólnych w celu zwiększenia czytelności i bezpieczeństwa typu static. Funkcja Refaktoryzacja > Ustal argumenty typu ogólnego to nowa refaktoryzacja pomagająca klientom bibliotek klas ogólnych (takich jak np. Java Collections Framework) w migracji kodu.

Przed rozszerzeniem surowych klientów kontenera

Refaktoryzacja ustali parametry typu dla typów ogólnych oraz usunie niepotrzebne rzutowania. Można ją zastosować w pojedynczych jednostkach kompilacji, jak również całych pakietach i projektach Java.

Po rozszerzeniu surowych klientów kontenera


Szybkie poprawki dla typów ogólnych

Teraz proponowane jest także utworzenie nowego parametru typu dla nierozwiązanych typów Java:

Szybka poprawka dodająca parametr typu

Dodana została obsługa znaczników dokumentacji Javadoc dla parametrów typu. W narzędziu J2SE 5.0 dokumentowanie parametrów typu odbywa się za pomocą istniejącego znacznika @param z nazwą podaną w nawiasie trójkątnym.

Szybka poprawka dokumentacji Javadoc dla parametrów typu


Nowe filtry wyników wyszukiwania umożliwiające wyszukiwanie odwołań do typów sparametryzowanych

Podczas wyszukiwania odwołań do typu sparametryzowanego, takiego jak List<Integer>, wyniki wyszukiwania będą zawierać odwołania także do wszystkich wystąpień typu List. Widok wyników wyszukiwania został wzbogacony o dwa dodatkowe filtry do ukrywania dopasowań:

  • Filtruj niezgodne dopasowania - ten filtr ukryje wszystkie wyniki, które są niezgodne ze wzorcem wyszukiwania ze względu na przypisanie. Na przykład przy wyszukiwaniu typu sparametryzowanego List<Integer> włączenie tego filtru spowoduje ukrycie wyników List<String>, ale nie List<? extends Number>.
  • Filtruj niedokładne dopasowania - ten filtr ukrywa wszystkie wyniki, które nie są dokładnie zgodne ze wzorcem. Dla przykładu podanego powyżej, ten filtr ukryje także wyniki List<? extends Number>.

Szybka poprawka dodająca parametr typu


Uzupełnienia w adnotacjach

Obsługiwane jest uzupełnianie kodu wewnątrz pojedynczych adnotacji składowej lub wartości atrybutu adnotacji.

Obraz przedstawiający edytor Java uzupełniający atrybut adnotacji


Typ adnotacji jako nadinterfejs - diagnostyka

Język programowania Java w narzędziu J2SE 5.0 umożliwia implementowanie typu adnotacji przez klasę. Jednak takie rozwiązanie nie jest zalecane. Kompilator Java może opcjonalnie oznaczać takie implementacje flagą.

Obraz przedstawiający edytor Java wyświetlający ostrzeżenie o użyciu typu adnotacji jako nadinterfejsu


Obsługa adnotacji @SuppressWarnings

Adnotacje @SuppressWarnings narzędzia J2SE 5.0 są obsługiwane. Rozpoznawane nazwy elementów ostrzeżenia to: "all", "boxing", "dep-ann", "deprecation", "incomplete-switch", "hiding", "finally", "static-access", "nls", "serial", "synthetic-access", "unqualified-field-access", "unchecked", "unused" oraz "warningToken". W poniższym przykładzie pierwsze pole zostało oznaczone adnotacją @SuppressWarnings("deprecation") i ostrzeżenia o nieaktualności nie są zgłaszane. Drugie pole nie zostało oznaczone w ten sposób i ostrzeżenie o nieaktualności zostało zgłoszone.

Obraz przedstawiający użycie adnotacji @SuppressWarnings w edytorze Java

Należy zwrócić uwagę, że aktywowanie adnotacji @SuppressWarnings odbywa się za pomocą opcji kompilatora. Patrz preferencja Java > Kompilator > Błędy/ostrzeżenia > Opcje narzędzia J2SE 5.0 > Włącz adnotacje @SuppressWarnings.

Nieobsługiwane elementy ostrzeżenia są domyślnie zgłaszane za pomocą ostrzeżenia. To ostrzeżenie może zostać zablokowane przy użyciu adnotacji @SuppressWarnings("warningToken").

Obraz przedstawiający użycie elementu ostrzeżenia warningToken w edytorze Java


Obsługa szybkiej poprawki
dla adnotacji
@SuppressWarnings

Ostrzeżenie, które można blokować za pomocą adnotacji @SuppressWarning, umożliwia użycie w tym celu szybkiej poprawki. Zastosowanie szybkiej poprawki do poniższego nieużywanego ostrzeżenia lokalnego

Szybka poprawka dla adnotacji Zablokuj ostrzeżenia

Wynik:

Usunięty problem z nieużywanym ostrzeżeniem


Brakująca adnotacja @Override - diagnostyka

Kompilator Java może opcjonalnie oznaczyć flagą metodę, która przesłania metodę nadklasy, ale w której brakuje odpowiedniej adnotacji @Override. Brakujące adnotacje @Override można dodawać za pomocą funkcji szybkiej poprawki.

Obraz przedstawiający ostrzeżenie o brakującej adnotacji @Override w edytorze Java

Patrz preferencja Java > Kompilator > Błędy/ostrzeżenia > Opcje narzędzia J2SE 5.0 > Brakująca adnotacja @Override.

Brakująca adnotacja @Deprecated - diagnostyka

Kompilator Java rozpoznaje adnotacje @Deprecated i traktuje je tak samo, jak komentarz dokumentacji /** @deprecated */. Kompilator może opcjonalnie oznaczać flagą nieaktualne konstrukcje, w których brakuje odpowiedniej adnotacji @Deprecated (aby zachęcić do stosowania adnotacji zamiast znaczników komentarza dokumentacji).

Obraz przedstawiający ostrzeżenie o brakującej adnotacji @Deprecated w edytorze Java

Patrz preferencja na karcie Java > Kompilator > Błędy/ostrzeżenia > Opcje narzędzia J2SE 5.0 > Brakująca adnotacja @Deprecated.

Niekompletna instrukcja przełącznika typu wyliczeniowego - diagnostyka

Kompilator Java może opcjonalnie oznaczać flagą niekompletne instrukcje switch bazujące na typie wyliczeniowym enum.

Obraz przedstawiający ostrzeżenie o niekompletnej instrukcji switch bazującej na typie wyliczeniowym enum w edytorze Java

Patrz preferencja na karcie Java > Kompilator > Błędy/ostrzeżenia > Opcje narzędzia J2SE 5.0 > Nie wszystkie stałe enum objęte klauzulą switch.

Diagnostyka kompilatora dla identyfikatora enum

Kompilator Java może wyszukać i oznaczyć flagą wystąpienia identyfikatora enum. Chociaż enum jest dozwolonym identyfikatorem w źródle do wersji 1.4, to w wersji 5.0 jest zastrzeżonym słowem kluczowym. Włączenie tego ostrzeżenia pomaga w wykryciu problemów przy migracji źródła. Patrz preferencja Java > Kompilator > Zgodność JDK > Odrzuć identyfikatory o nazwie enum.

Opcjonalna diagnostyka kompilatora dla identyfikatora enum


Szybka poprawka
tworząca stałe enum

Funkcja szybkiej poprawki obsługuje tworzenie stałych wyliczeniowych. W poniższym przykładzie stałej BLUE brakuje w wyliczeniu Colors.

Opcjonalna diagnostyka kompilatora dla identyfikatora enum


Propozycje parametru
automatycznego opakowania

Proponowane parametry zawierają propozycje automatycznego pakowania i wypakowywania:

Zrzut ekranu przedstawiający propozycje automatycznego opakowania

Uwaga: Preferencja Java > Edytor > Asystent kodu > Wypełnij nazwy argumentów podczas uzupełniania musi być włączona.


Pakowanie/
wypakowywanie - diagnostyka

Możliwość automatycznego opakowania w narzędziu J2SE 5.0 jest użyteczna, ale może wywołać nieoczekiwane zachowanie, zwłaszcza podczas przesyłania argumentów. Kompilator został wyposażony w opcjonalną funkcję diagnostyczną, która wskazuje, kiedy przeprowadzane jest automatyczne pakowanie lub wypakowywanie. W poniższym przykładzie wywoływany jest argument foo(int) zamiast foo(Integer), ponieważ wykonane zostało automatyczne wypakowywanie.

Obraz przedstawiający ostrzeżenie o wypakowywaniu w edytorze Java

Patrz preferencja na karcie Java > Kompilator > Błędy/ostrzeżenia > Opcje narzędzia J2SE 5.0 > Konwersje pakowania i wypakowywania.

Obsługa narzędzia J2SE 5.0 w edytorze Java

Edytor Java udostępnia funkcje kolorowania składni dla nowych funkcji językowych narzędzia J2SE 5.0. Należy przejść do strony preferencji Java > Edytor > Kolorowanie składni, aby zmienić kolory lub włączyć kolorowanie semantyczne zmiennych typu, elementów adnotacji oraz automatycznie pakowanych i wypakowywanych wyrażeń:

Zrzut ekranu pokazujący kolorowanie składni typu wyliczeniowego, adnotacji, elementów adnotacji, zmiennych typu oraz automatycznie opakowanych wyrażeń


Szablon nowej pętli for

Szablon foreach wstawia nową pętlę for, proponując lokalną instancję Iterable, na której można przeprowadzić iterację:

Zrzut ekranu przedstawiający wstawiony szablon pętli for


Przekształcanie w rozszerzoną pętlę for

Nowa szybka asysta (Ctrl+1) umożliwia przekształcenie starych pętli for dla tablic i kolekcji w rozszerzone pętle for narzędzia J2SE 5.0:

Obraz przedstawiający przykład przekształcenia w rozszerzoną pętlę for

Szybka asysta upraszcza tę pętlę w następujący sposób:

Obraz przedstawiający wynik działania szybkiej asysty dla rozszerzonej pętli for


Argument varargs
wymagający rzutowania

Kompilator Java może opcjonalnie oznaczać flagą podejrzane wywołania metody z argumentem varargs. Ostatni zerowy argument nie jest opakowywany jako jednoelementowa tablica, jak można by przypuszczać. Dodanie jawnego rzutowania wyjaśnia wszelkie wątpliwości.

Kompilator sprawdza wymagane rzutowanie dla argumentu varargs

Ustawienie preferencji znajduje się na karcie Java > Kompilator > Błędy/ostrzeżenia > Opcje narzędzia J2SE 5.0 > Niedokładne dopasowanie typu argumentów varargs.


Uzupełnianie używa instrukcji importu z modyfikatorem static

Uzupełnianie kodu w edytorze Java może przetwarzać instrukcje importu z modyfikatorem static podczas ustalania uzupełnień zależnych od kontekstu.

Obraz przedstawiający edytor Java uzupełniający i wyszukujący metodę z instrukcji importu z modyfikatorem static Math.*


Grupy instrukcji importu z
modyfikatorem static

Aby lepiej zorganizować instrukcje importu z modyfikatorem static, należy utworzyć grupy dla tych instrukcji i umieść instrukcje w tych grupach. Można także określić grupę others, w której znajdą się wszystkie instrukcje importu niepasujące do żadnej innej grupy:

Grupa instrukcji importu z modyfikatorem static

Funkcja grupy others jest dostępna także dla instrukcji importu bez modyfikatora static.


Obsługa pliku źródłowego
package-info.java

Dodano obsługę specjalnego pliku źródłowego package-info.java, który umożliwia adnotowanie i dokumentowanie pakietów. Wszystkich narzędzi JDT (asystent kodu, wybór kodu, wyszukiwanie, schemat, hierarchie typów itp.) można użyć w tej specjalnej jednostce kompilacji.

Komentarze dokumentacji w pliku źródłowym package-info.java są przetwarzane, a składnia i odwołania w standardowych znacznikach komentarza są sprawdzane.

Obraz przedstawiający eksplorator pakietów i edytor Java z plikiem źródłowym package-info.java


Formater kodu dla konstrukcji narzędzia J2SE 5.0

Formater kodu obsługuje wszystkie nowe konstrukcje językowe narzędzia J2SE 5.0. Ustawienia obsługi tych konstrukcji przez formater kodu znajdują się na stronie preferencji Java > Styl kodu > Formater kodu:

Obraz przedstawiający stronę preferencji formatera znaków odstępu


Debugowanie kodu źródłowego w wersji 5.0

Uruchamianie i debugowanie kodu źródłowego w wersji 5.0 można wykonać za pomocą środowiska JRE w wersji 1.5. Wartościowanie debugowania Java obsługuje konstrukcje narzędzia J2SE 5.0, takie jak typy ogólne czy rozszerzone pętle for.

Zmiana nazewnictwa pliku klasy dla lokalnych typów wewnętrznych

W trybie zgodności wersji 5.0 kompilator Java generuje pliki klas, korzystając z konwencji nazewnictwa określonej w narzędziu JLS 13.1 (trzecia edycja) dla lokalnych typów wewnętrznych. W związku z tym w poniższym przykładzie nazwa wygenerowanego pliku to X$1A.class, a nie X$1$A.class.

Obraz przedstawiający Nawigator z plikiem klasy lokalnego typu wewnętrznego


Debuger Java


Punkty kontrolne oraz
punkty zatrzymania w miejscach wejścia do
metod

Dwukrotne kliknięcie linijki edytora Java powoduje utworzenie punktów kontrolnych w polach oraz punktów zatrzymania w miejscach wejścia do metod w deklaracjach metod.

Blokady i zakleszczenia

Blokady wątku, a także blokady, na które wątek oczekuje, można wyświetlić jako wstawione w widoku debugowania, przełączając pozycję Pokaż monitory w menu rozwijanym widoku debugowania. Zakleszczone wątki i blokady są oznaczone na czerwono.

Zakleszczenie wyświetlone w widoku debugowania


Nawigacja w zapisie śledzenia stosu

Dzięki skopiowaniu i wklejeniu zapisu śledzenia stosu do Konsoli śledzenia stosu Java można przechodzić w różne miejsca zapisu za pomocą odsyłaczy hipertekstowych. Konsolę śledzenia stosu Java można otworzyć w menu rozwijanym Otwórz konsolę widoku Konsola. Wklejone zapisy śledzenia stosu można formatować za pomocą standardowego przypisania klawisza Formatuj.

Konsola śledzenia stosu Java


Wstawianie wartości obliczonej metodą toString()

Wartość zmiennej przetworzoną przez metodę toString() można wyświetlić jako wstawioną w drzewie widoku Zmienne, a także w obszarze szczegółów. Do konfiguracji tej opcji używana jest komenda Formatery szczegółów Java znajdująca się w menu rozwijanym widoku.

Przykład wstawienia wartości obliczonej metodą toString()


Struktury logiczne zdefiniowane przez użytkownika

Debuger Java pozwala na sterowanie treścią widoku Zmienne dla różnych typów obiektów. Na przykład kolekcje można wyświetlić jako prostą tablicę wartości bez szczegółowych informacji na temat implementacji danego obiektu kolekcji.

Odbywa się to na stronie preferencji Java > Debugowanie > Struktury logiczne, gdzie można przypisać pojedyncze wyrażenie (na przykład this.toArray()) lub ciąg nazwanych wyrażeń do określonej klasy lub interfejsu. Jeśli dany obiekt ma zostać wyświetlony w widoku Zmienne, wyrażenia są wartościowane i wyświetlane są odpowiednie wartości.

Okno dialogowe służące do edytowania struktury logicznej Java


Rozszerzone możliwości w zakresie modyfikowania wartości zmiennych

Debuger Java umożliwia zmianę wartości zmiennych przez wprowadzenie wyrażenia w oknie dialogowym Zmienianie wartości lub w obszarze szczegółów widoku Zmienne i naciśnięcie przycisku Zapisz.

Okno dialogowe służące do edytowania wyrażenia mającego zastąpić aktualną wartość zmiennej


Wyszukiwanie zmiennej

Akcja Znajdź zmienną w widoku Zmienne umożliwia wpisanie nazwy poszukiwanej zmiennej. Podczas wpisywania w widoku Zmienne zostaje wybrana następna widoczna zmienna zgodna z wpisanym tekstem. Okno dialogowe Wyszukiwanie zmiennej także wyświetla zmienne zgodne z wpisanym tekstem.


Załączniki dokumentacji Javadoc

Możliwe jest przypisanie różnych położeń dokumentacji Javadoc do każdego pliku JAR w bibliotekach JRE.

Okno dialogowe wyświetlające położenie dokumentacji Javadoc dla poszczególnych bibliotek JRE


Kompilator Java


Nowe ustawienia
kompilatora dokumentacji Javadoc

Jeśli sprawdzanie dokumentacji Javadoc jest włączone, można je skonfigurować tak, aby wyświetlało ostrzeżenie w następujących przypadkach:
  • Znaczniki @see oraz @link odwołują się do nieaktualnych elementów
  • Znaczniki @see oraz @link odwołują się do niewidocznych elementów

Ustawienia tej funkcji znajdują się na stronie preferencji Java > Kompilator > Dokumentacja Javadoc.


Bezskuteczne przypisanie - diagnostyka dla wyrażeń przyrostkowych

Opcjonalna funkcja diagnostyczna dla bezskutecznych przypisań wykrywa miejsca, gdzie wyrażenie przyrostkowe zostało przypisane do tej samej zmiennej np. i = i++;.

Obraz przedstawiający przypisanie wyrażenia przyrostkowego


Pole unikalnego identyfikatora wersji szeregowej

Kompilator został wyposażony w nową funkcję diagnostyczną wykrywającą klasy przekształcalne do postaci szeregowej, w których brakuje deklaracji pola serialVersionUID.

Ustawienie tej preferencji znajduje się na karcie Java > Kompilator > Błędy/ostrzeżenia > Potencjalne problemy programistyczne.


Wczesne wykrywanie odwołań do klas wewnętrznych

W ścieżce budowania Java (Właściwości > Ścieżka budowania Java > Biblioteki) można dodać adnotację do wpisów biblioteki (i projektu) w celu określenia pakietów wewnętrznych, do których nie należy odwoływać się bezpośrednio z poziomu kodu. Na przykład zazwyczaj unika się używania pakietów właściwych dostawcom, takich jak com.ibm.* lub com.sun.*, które zazwyczaj znajdują się w bibliotekach narzędzia J2SE. Ograniczenia dostępu są wyrażane za pomocą kombinacji reguł włączających i wykluczających we wpisach ścieżki budowania. Wzorzec składni jest zgodny z notacją zbioru plików Ant oraz dopasowaniami ścieżki do pliku klasy. Na przykład użycie wzorca com/ibm/** jako reguły wykluczenia ograniczyłoby dostęp do wszystkich klas w pakiecie com.ibm oraz jego podpakietach, natomiast użycie wzorca org/eclipse/**/internal/** objęłoby wszystkie klasy wewnętrznych pakietów platformy Eclipse. Po wprowadzeniu reguł włączania wszystkie elementy zgodne z tymi regułami są dozwolone, a wszystkie inne są blokowane.

Ustawienie preferencji Java > Kompilator > Błędy/ostrzeżenia > Nieaktualny i ograniczony interfejs API umożliwia określenie, czy błędne odwołania zostaną oznaczone flagą jako błędy czy ostrzeżenia (domyślnie są oznaczane jako błędy dla odwołań zabronionych oraz ostrzeżenia dla odwołań niezalecanych).

Obraz przedstawiający okno dialogowe właściwości ścieżki budowania Java


Reguły dostępu w bibliotekach i projektach

Aby jawnie umożliwić/uniemożliwić/ograniczyć dostęp do określonych typów, można zdefiniować reguły dostępu dla używanych bibliotek i projektów.

Obraz przedstawiający kreatora ścieżki budowania z regułami dostępu


Edytor Java


Ulepszone ikony i tytuły dla funkcji zwijania

Po zwinięciu elementu Java wiersz wyświetlany w edytorze zawiera jego nazwę. Dla zwiniętych komentarzy dokumentacji Javadoc wyświetlany jest pierwszy wiersz komentarza. Nowe proste ikony zwijania wyświetlane w edytorze Java różnią się od indykatorów przesłaniania i implementacji:

Obraz przedstawiający nową ilustrację zwijania


Zwijanie komentarza w nagłówku

W plikach źródłowych Java można zwinąć komentarze w nagłówkach oraz informacje o prawach autorskich:

Zrzut ekranu przedstawiający zwinięty komentarz w nagłówku


Oznaczanie wystąpień metod dziedziczonych

Edytor Java może wyróżniać wszystkie deklaracje metod, które implementują lub przesłaniają metody dziedziczone z wybranego nadtypu. Patrz ustawienie preferencji Java > Edytor > Oznacz wystąpienia > Metoda implementująca interfejs.

Obraz przedstawiający oznaczanie wystąpień implementacji


Nowe szybkie menu wystąpień

Menu kontekstowe do wyszukiwania wystąpień może zostać otwarte w edytorze Java za pomocą kombinacji klawiszy Ctrl+Shift+U.

Uwaga: Powyższą kombinację klawiszy można ponownie przypisać do komendy Szukaj wszystkich wystąpień w pliku.


Wyróżnianie nieaktualnych składowych klas w edytorze Java

Nieaktualne składowe klas są wyróżniane w sposób zaawansowany:

Wyróżnianie nieaktualnych składowych

Ustawienia te można zmienić na stronie preferencji Java > Edytor > Kolorowanie składni.

Odwołania w dokumentacji Javadoc

Platforma Eclipse rozpoznaje odwołania do elementów Java wewnątrz komentarzy dokumentacji (tzn. znaczniki @see, @link, @linkplain, @throws, @exception, @param i @value). Umożliwia to użycie pomocy w dymku oraz tworzenie odsyłaczy do danego elementu Java.

Obraz przedstawiający edytor Java z podpowiedzią w dokumentacji Javadoc


Ulepszone uzupełnianie dla pustych słów

Funkcja uzupełniania kodu Java dla pustego słowa nie proponuje automatycznie wszystkich typów widocznych w położeniu uzupełnienia. Należy wpisać pierwszy znak typu, aby wyświetlona została propozycja uzupełnienia.

Obraz przedstawiający edytor Java wyświetlający propozycje uzupełnienia dla pustego słowa


Opis podpowiedzi dla dokumentacji Javadoc

Dokumentacja Javadoc wyświetlana za pomocą opcji Edytuj > Pokaż opis podpowiedzi (F2) jest pokazywana w widgecie SWT Browser.


Dopasowanie wcięcia przy przenoszeniu wierszy

Komendy Przenieś wiersze (Alt+strzałka w górę/strzałka w dół) oraz Kopiuj wiersze (Ctrl+Alt+strzałka w górę/strzałka w dół) automatycznie dopasowują wcięcie wybranych wierszy podczas przenoszenia ich wewnątrz edytora Java.

Ulepszony edytor plików właściwości Java

Edytory plików właściwości Java zostały znacznie ulepszone. Wzbogacono je o funkcję wyróżniania składni, ulepszone zachowanie przy dwukrotnym kliknięciu oraz osobną preferencję czcionki. Kolory wyróżniania składni można dostosować na stronie preferencji Java > Edytor plików właściwości. Dostępna jest także funkcja sprawdzania pisowni, a do naprawienia problemów z pisownią może zostać użyta funkcja szybkiej poprawki (Ctrl+1).

Obraz przedstawiający edytor plików właściwości Java


Praca z eksternalizowanymi łańcuchami

Po zatrzymaniu się nad kluczem eksternalizowanego łańcucha w edytorze Java przypisana eksternalizowana wartość zostanie wyświetlona w podpowiedzi:

Obraz przedstawiający podpowiedź dla eksternalizowanego łańcucha

Aby przenieść się bezpośrednio do wpisu w odpowiednim pliku właściwości Java, należy wykonać kombinację Ctrl+kliknięcie:

Obraz przedstawiający wykonanie kombinacji Ctrl+kliknięcie w edytorze Java


Przechodzenie od klucza właściwości w edytorze plików właściwości do jego odwołań

Aby przenieść się z klucza właściwości w edytorze plików właściwości z powrotem do miejsc w kodzie, gdzie znajdują się odwołania do niego, należy użyć opcji Nawigacja > Otwórz (F3) lub kombinacji Ctrl+kliknięcie.

Obraz przedstawiający tworzenie odsyłaczy hipertekstowych dla klucza właściwości


Kreator eksternalizowania łańcuchów obsługuje nowe pakunki komunikatów

Kreator eksternalizowania łańcuchów obsługuje nowy w tej wersji mechanizm eksternalizacji łańcuchów:

Obraz przedstawiający kreatora eksternalizacji łańcuchów


Nowy interfejs API służący do tworzenia propozycji kodu, takich jak w edytorze Java

Implementując edytor dla języka podobnego do języka Java, można utworzyć własne propozycje asystenta kodu podobne do tych, jakie proponowane są w edytorze Java. Utworzenie instancji klasy CompletionProposalCollector pozwoli użyć propozycji edytora Java; utworzenie jej podklasy umożliwi dodanie własnych propozycji. Aby poprawnie wyświetlić obrazy i etykiety, należy użyć klasy CompletionProposalLabelProvider, a następnie posortować propozycje za pomocą klasy CompletionProposalComparator.

Pakiet: org.eclipse.jdt.ui.text.java w module dodatkowym org.eclipse.jdt.ui.


Ogólne narzędzia Java


Nowe okno dialogowe Otwieranie typu

Okno dialogowe Otwieranie typu Java zostało ulepszone w następujący sposób:
  • Wybieranie odbywa się z jednej listy.
  • Pierwsza w oknie dialogowym wyświetlana jest historia ostatnio otwartych typów, a typy obszaru roboczego pasujące do wzorca pojawiają się pod linią separatora.
  • Przejście do typu za pomocą dopasowywania wzorca CamelCase odbywa się przy użyciu mniejszej liczby klawiszy. Na przykład TZ jest zgodne z TimeZone, a IOOBE jest zgodne z IndexOutOfBoundsException.
  • Treść okna dialogowego może być ograniczona do zbioru roboczego. Zbiór roboczy można wybrać z menu rozwijanego okna dialogowego.

Okno dialogowe Otwieranie typu

Wprowadzono także ważne, choć może mniej widoczne zmiany w architekturze. Typy wyświetlane w oknie dialogowym są wyszukiwane za pomocą zapytania mechanizmu wyszukiwania Java. Oznacza to zaoszczędzenie od 4 do 6 MB pamięci w programistycznym obszarze roboczym platformy Eclipse w porównaniu z poprzednim rozwiązaniem.


Organizowanie obszaru roboczego z wieloma projektami

Opcja Pokaż > Zbiory robocze w menu Widok eksploratora pakietów umożliwia włączenie nowego trybu, który pokazuje zbiory robocze jako elementy najwyższego poziomu. Dzięki temu zarządzanie obszarami roboczymi zawierającymi wiele projektów jest znacznie łatwiejsze.

Eksplorator pakietów w trybie Zbiory robocze

Aby skonfigurować, które zbiory robocze będą wyświetlane, należy użyć opcji Wybór zbiorów roboczych w menu Widok eksploratora pakietów. To okno dialogowe umożliwia utworzenie nowych zbiorów roboczych Java oraz określenie, które zbiory robocze będą wyświetlane i w jakim porządku. Rozmieszczenie zbiorów roboczych można także zmieniać bezpośrednio w eksploratorze pakietów za pomocą metod przeciągnij i upuść oraz kopiuj i wklej.


Ulepszona strona folderu źródłowego dla kreatora nowego projektu Java

Ulepszona strona konfiguracji folderu źródłowego w kreatorze tworzenia projektu Java pomaga w tworzeniu projektów na podstawie istniejącego źródła. Można określić wpisy folderu źródłowego, włączyć/wykluczyć foldery bezpośrednio na drzewie oraz od razu sprawdzić wyniki swych działań.

Nowa strona folderu źródłowego


Współużytkowanie ustawień projektu Java

Każdy projekt Java może zawierać niestandardowe ustawienia opcji kompilatora oraz stylu kodu. Te ustawienia są przechowywane w projekcie i automatycznie stosowane, kiedy projekt jest ładowany (lub aktualizowany) z repozytorium.

Modyfikowanie ustawień projektu Java za pomocą interfejsu użytkownika powoduje automatyczne ich zapisanie do pliku w katalogu .settings. Treść pliku ustawień jest generowana automatycznie. Nie jest ona przeznaczona do bezpośredniej edycji.

Ustawienia kompilatora z możliwością współużytkowania


Przechodzenie do ustawień właściwych dla projektu

Strony preferencji ustawień, które można ustawić także dla indywidualnych projektów, zawierają odsyłacz do strony preferencji właściwej dla projektu.

Zrzut ekranu przedstawiający odsyłacz do ustawień właściwych dla projektu


Zapisywanie położenia dokumentacji Javadoc w pliku .classpath

Położenia dokumentacji Javadoc przyłączonej do plików JAR i folderów klas są zapisywane w pliku .classpath, aby umożliwić ich współużytkowanie w zespole. Po uruchomieniu wersji 3.1 proces działający w tle przeprowadzi migrację wszystkich przechowywanych wewnętrznie położeń do pliku .classpath.

Położenia dokumentacji Javadoc są używane przez komendę Otwórz zewnętrzną dokumentację Javadoc (CTRL + F2) oraz przez kreatora dokumentacji Javadoc.


Skróty do szybkich asyst i poprawek

Niektóre często stosowane operacje szybkiej asysty, na przykład Zmień nazwę w pliku czy Przypisz do zmiennej lokalnej, można wywoływać bezpośrednio za pomocą kombinacji klawiszy Ctrl+2 R i Ctrl+2 L. Aby zapoznać się z innymi szybkimi poprawkami wywoływanymi bezpośrednio, patrz strona preferencji Klawisze.

Strona preferencji Klawisze ze skrótami do szybkich asyst


Nowe szybkie poprawki

Nowe szybkie poprawki zostały dodane dla kilku opcji kompilatora Java, na przykład:
  • Brak identyfikatora wersji szeregowej: Zrzut ekranu przedstawiający szybkie poprawki wersji szeregowej

Nowa szybka asysta

Kilka szybkich asyst (Ctrl+1) zostało dodanych do edytora Java:
  • Odwróć wyrażenie boolowskie:
    Obraz przedstawiający szybką asystę odwracającą warunki
  • Odwrócenie wyrażenia warunkowego:
    Szybka asysta odwracająca warunki
    Wynik:
    Odwrócony wynik
  • Przekształcenie wyrażenia warunkowego (operator ?) w instrukcję if-else lub odwrotnie
  • Wprowadzenie nowej zmiennej lokalnej po sprawdzeniu instanceof:
    Przypisywanie rzutowania do zmiennej lokalnej przed wywołaniem
    Wynik:
    Wynik po wywołaniu szybkiej asysty
  • Wybór literału pojedynczego podłańcucha:
    Szybka asysta wybierająca łańcuch
    Wynik:
    Wynik szybkiej asysty wybierającej łańcuch

Cofanie/przywracanie refaktoryzacji dostępne w menu Edycja

Cofanie/przywracanie refaktoryzacji jest teraz dostępne w menu Edycja, a osobne akcje Cofnij/Przywróć refaktoryzację na globalnym pasku menu zostały usunięte. Dodatkowo operacje cofania/przywracania refaktoryzacji zostały zintegrowane z operacjami cofania/przywracania edytora Java, dzięki czemu historia cofania jest bardziej przejrzysta. Na przykład refaktoryzację wyzwoloną z poziomu edytora można cofnąć za pomocą kombinacji klawiszy Ctrl+Z.

Akcja cofania w menu kontekstowym edytora


Dostosowanie widoczności składowej

Komendy refaktoryzacji Przenieś metodę, Przenieś typ składowy do nowego pliku, Przenieś składowe static, Przenieś do nadklasy oraz Przenieś do podklasy automatycznie zmieniają widoczność używanych pól, metod i typów tam, gdzie to konieczne.

Zrzut ekranu przedstawiający refaktoryzację Przenieś typ składowy do nowego pliku


Refaktoryzacja Przenieś metodę

Komenda Refaktoryzacja > Przenieś została rozszerzona, aby poprawić obsługę przenoszenia metod instancji. Nowe funkcje to na przykład:
  • Opcja tworzenia metody delegowanej na potrzeby zgodności
  • Nieużywane pola mogą być celem metod

Zrzut ekranu przedstawiający refaktoryzację metodą przenoszenia wykonywaną na metodzie instancji


Refaktoryzacja Użyj nadtypu tam, gdzie to możliwe

Refaktoryzacja Użyj nadtypu tam, gdzie to możliwe została rozszerzona o preferencję, która określa, czy wystąpienia typu w wyrażeniach instanceof powinny być aktualizowane:

Zrzut ekranu przedstawiający kreatora używania nadtypu tam, gdzie to możliwe


Menu ścieżki budowania w eksploratorze pakietów

Nowa pozycja w menu kontekstowym eksploratora pakietów Java, Ścieżka budowania, udostępnia akcje kontekstowe służące do modyfikowania ścieżki budowania projektu Java. Można dodawać/usuwać nowe foldery źródłowe, archiwa i biblioteki oraz włączać foldery i pliki do folderu źródłowego i wykluczać je z niego:

Menu ścieżki budowania


Nowy profil wbudowanego formatera domyślnego platformy Eclipse

Chociaż domyślny profil formatera kodu w wersji 3.0 platformy Eclipse został nazwany Konwencje Java, to używa on tabulacji zamiast spacji przy tworzeniu wcięć podczas formatowania pliku. Został dodany nowy profil o nazwie Eclipse, który odzwierciedla domyślne opcje formatera i używa tabulacji przy tworzeniu wcięć. Aby używać prawdziwych ustawień Konwencje Java, należy zmienić profil formatera na Konwencje Java za pomocą strony preferencji Java > Styl kodu > Formater.

Zmienianie wielu ustawień zawijania wierszy jednocześnie

Formater kodu Java umożliwia zmianę wielu ustawień zawijania wierszy jednocześnie przez wielokrotne zaznaczenie w drzewie, a następnie zmianę ustawień:

Strona zawijania wierszy formatera kodu

Ustawienia formatera kodu znajdują się na stronie preferencji Java > Styl kodu > Formater.


Mieszane ustawienia wcięć

Za pomocą preferencji formatera Java można konfigurować wielkość tabulacji niezależnie od wielkości wcięcia (patrz karta Wcięcie w profilu formatera):

Strona preferencji formatera Java. Preferencje wcięcia ustawiane są na karcie Wcięcie profilu formatera.

Na przykład można ustawić opcję Wielkość tabulacji na wartość 8 i opcję Wielkość wcięcia na wartość 4, aby oznaczyć wcięcie źródła za pomocą czterech znaków spacji. Jeśli opcja Strategia tabulacji zostanie ustawiona na wartość Mieszane, każde dwie jednostki wcięcia zostaną zastąpione znakiem tabulacji.

Profile formatera można konfigurować na stronie preferencji Java > Styl kodu > Formater.


Najpierw wykonywanie ponowne testów, które się nie powiodły

W widoku JUnit znajduje się nowa akcja, która umożliwia ponowne wykonanie testów, które się nie powiodły, przed wykonaniem testów, które się powiodły.

Wykonanie ponowne ostatnich testów, które się nie powiodły