Co nowego w wersji 3.3 (JDT)

Poniżej znajdują się opisy niektórych ciekawych i ważnych zmian wprowadzonych w narzędziach programistycznych Java w wersji Eclipse 3.3. 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.3.


Akcje refaktoryzacji i kodu źródłowego Java

Refaktoryzacja bez zapisu

Operacje refaktoryzacji nie wymagają już zapisania wszystkich edytorów. Teraz można z nich korzystać nawet wtedy, gdy w edytorach Java lub edytorach tekstu nadal znajdują się niezapisane zmiany. Jeśli istnienie niezapisanych zmian w edytorach po refaktoryzacji nie jest pożądane, można włączyć opcję zapisywania zmodyfikowanych zasobów na stronie preferencji Otwiera stronę preferencji Java Java.

Refaktoryzacja zmiany nazw w edytorze

Refaktoryzacji zmiany nazw Java można teraz dokonywać bezpośrednio w edytorze, bez wyświetlania okna dialogowego.

Wykonanie w edytorze Java komendy Refaktoryzacja > Zmień nazwę (Alt+Shift+R) powoduje przełączenie edytora w tryb połączony, bez otwierania modalnego okna dialogowego. Zakres zmian pozostaje lokalny do chwili naciśnięcia Enter, kiedy to zmiana jest wprowadzana w całym obszarze roboczym.

Tryb bezpośredniej zmiany nazw

Aby wyświetlić i skonfigurować opcje refaktoryzacji, ponownie naciśnij Alt+Shift+R lub kliknij przycisk menu i wybierz opcję Otwórz okno dialogowe zmiany nazw....

Jeśli wolisz korzystać ze starego okna dialogowego, należy wyłączyć opcję Zmieniaj nazwy w edytorze bez okna dialogowego na stronie preferencji Otwiera stronę preferencji Java Java.

Refaktoryzacja Wprowadź obiekt parametrów

Wprowadź obiekt parametrów to nowa operacja refaktoryzacji, pozwalająca zastąpić zestaw parametrów metody nowym obiektem-kontenerem. Wszystkie wywołania tej metody są automatycznie aktualizowane, by przekazywać obiekt parametrów nowej klasy.

Zastosowania:

  • parametry grupowe, które stanowią logiczną całość, np. Date start, Date koniec, String nowaWartosc, String staraWartosc;
  • zmniejszanie liczby parametrów;
  • udostępnianie w obiekcie parametrów użytecznych wartości domyślnych;
  • przekazywanie parametru wzdłuż łańcucha wywołań.

Aby dokonać refaktoryzacji Wprowadź obiekt parametrów, zaznacz metodę, wywołaj operację Refaktoryzacja > Wprowadź obiekt parametrów oraz wybierz parametry, które mają zostać polami i nadaj im czytelne nazwy.

Zrzut ekranu przedstawiający okno dialogowe refaktoryzacji Wprowadź obiekt parametrów

Następujący fragment kodu:

Metoda przed refaktoryzacją

zostanie przekształcony do postaci:

Metoda po refaktoryzacji

Sortuj składowe dla wielu elementów

Korzystając z operacji Sortuj składowe można teraz sortować wiele elementów naraz. Wybierz pakiet, projekt lub zbiór elementów Java w Eksploratorze pakietów, a następnie wywołaj operację Źródło > Sortuj składowe.

Zrzut ekranu przedstawiający operację sortowania składowych

Profile oczyszczania

Kreator Źródło > Oczyść został zastąpiony stroną preferencji. Na stronie tej można definiować profile czyszczenia. Profil może być powiązany z obszarem roboczym lub poszczególnym projektami. Ustawienia projektu mogą też być współużytkowane w ramach zespołu za pośrednictwem systemu kontroli wersji. Dodatkowo możliwe jest eksportowanie i importowanie poszczególnych profili.

Strona preferencji czyszczenia

Nowe operacje czyszczenia

Zostały zaimplementowane następujące operacje czyszczenia:

  • Formatuj kod źródłowy: Ustawienia formatowania można skonfigurować na stronie preferencji formatera.
  • Usuń końcowe odstępy: Można skonfigurować usuwanie końcowych odstępów ze wszystkich wierszy lub ignorowanie pustych wierszy.
  • Organizuj importy: Deklaracje importu zostaną zorganizowane według ustawień projektu lub obszaru roboczego.
  • Sortuj składowe: Można sortować albo wszystkie składowane jednostki kompilacji, albo ignorować pola, stałe wyliczeniowe (enum) i inicjatory (ponieważ sortowanie takich składowych może powodować zmiany semantyczne).
Edytor Java

Czyszczenie kodu przy zapisie

Teraz możliwe jest automatyczne wywoływanie operacji czyszczenia kodu przy każdym zapisie edytora Java. Funkcję tę można włączyć na poziomie globalnym na stronie preferencji Otwiera stronę preferencji Akcje zapisu Java > Edytor > Akcje zapisu. Akcje zapisu można też konfigurować na poziomie projektu, co ułatwia wprowadzenie standardowych ustawień dla całego projektu poprzez współużytkowanie ich w skali całego zespołu:

Strona właściwości Akcja zapisu

Aktywna obsługa treści dla ulubionych importów statycznych

Aktywna obsługa treści (Ctrl+Space) może teraz proponować uzupełnienia składowych statycznych z listy ulubionych importów, którą można skonfigurować na stronie preferencji Otwiera stronę preferencji Ulubione Java > Edytor > Aktywna obsługa treści > Ulubione.

Jeśli na przykład do tej listy została dodana pozycja java.util.Arrays.*, na liście propozycji będą wyświetlane wszystkie metody statyczne tego typu pasujące do przedrostka uzupełniania:

Propozycje aktywnej obsługi treści

Podczas wstawiania takich propozycji uwzględniane są preferencje importu ustawione na stronie preferencji Otwiera okno preferencji aktywnej obsługi treści Java > Edytor > Aktywna obsługa treści.

Aktywna obsługa treści dla zmiennych nierozstrzygniętego typu

Edytor Java obsługuje teraz propozycje nowych składowych również w przypadku nierozstrzygniętego typu - w zależności od ustawienia preferencji Otwiera stronę preferencji aktywnej obsługi treści Java > Edytor > Aktywna obsługa treści > Dodaj import zamiast nazwy kwalifikowanej, edytor może albo automatycznie dodawać importy, albo tworzyć pełne ścieżki typów wyświetlanych w takich propozycjach.

Naciśnięcie klawisza ; w następującej sytuacji:

Zrzut ekranu przedstawiający aktywną obsługę treści w przypadku zmiennych nierozstrzygniętego typu

Wynik:

Zrzut ekranu przedstawiający działanie aktywnej obsługi treści po naciśnięciu klawisza ';'

Aktywna obsługa treści oferuje propozycje deklaracji niezdefiniowanych zmiennych lokalnych

Aktywna obsługa treści może teraz wnioskować na temat nazwy deklarowanej zmiennej lokalnej na podstawie nierozstrzygniętych nazw wykrytych w dalszej części kodu, co ilustruje następujący przykład:

Przykład proponowania nierozstrzygniętych nazw

Ciąg dalszy ulepszeń mechanizmu aktywnej obsługi treści

  • Jeśli aktywna obsługa treści zostanie wywołany (Ctrl+Spacja) wewnątrz bloku try-catch, możliwe jest teraz sugerowanie nazw typów wyjątków na podstawie wykrytych wyjątków, które mogą być zgłaszane w danym bloku try. Wyjątki takie są teraz na liście podpowiedzi umieszczane przed innymi możliwymi wyjątkami.
  • Podczas uzupełniania odniesienia do nazwy aktywna obsługa treści sugeruje teraz również nazwy nierozstrzygnięte znalezione w innych częściach kodu.
  • Wśród sugerowanych uzupełnień kodu wyświetlanych dla pustego wyrażenia są teraz wyświetlane typy lokalne bieżącej jednostki kompilacji.
  • Wywołanie uzupełniania kodu po znaku "@" powoduje wyświetlenie propozycji wszystkich dostępnych typów adnotacji.
  • Wywołanie operacji uzupełniania na składowej adnotacji powoduje wyświetlenie propozycji wszystkich możliwych atrybutów, które jeszcze nie są określone.

Szybka asysta

Funkcje dotąd dostępne tylko w menu Refaktoryzacja są teraz dodatkowo dostępne jako operacje szybkiej asysty (Ctrl+1). Operacje szybkiej asysty nadal nie powodują wyświetlenia okna dialogowego, lecz przejście w tryb połączony, w którym można zmieniać wprowadzone nazwy lub typy.

  • Wyodrębnij do zmiennej lokalnej i Wyodrębnij do stałej: zaznacz wyrażenie w kodzie.
  • Bezpośrednie wstawienie zmiennej lokalnej: dostępne na nazwie zmiennej.
  • Przekształć zmienną lokalną w pole: dostępne na nazwie zmiennej.
    Zrzut ekranu szybkiej asysty wyodrębnienia do zmiennej lokalnej
  • Przekształć klasę anonimową w lokalną: dostępne na nazwie typu klasy anonimowej.
    Przykład przekształcenia klasy anonimowej w zagnieżdżoną - przed konwersją
    Po wywołaniu tej funkcji można za pomocą klawisza Tab przechodzić po wygenerowanym kodzie, zmienić nazwę nowego typu oraz wybierać spośród sugerowanych nazw pól i parametrów.
    Przykład przekształcenia klasy anonimowej w zagnieżdżoną - po konwersji

Szybka poprawka do tworzenia metody z @Override

Jeśli adnotacja @Override zostanie dodana do metody, która jeszcze nie przesłania żadnej innej metody, wywołanie szybkiej poprawki (Ctrl+1) pozwoli utworzyć taką metodę w jednym z typów nadrzędnych.

Szybka poprawka do tworzenia i używania metod pobierających i ustawiających

Dostępna jest nowa szybka poprawka mająca zastosowanie w przypadku pól niedostępnych z powodu ograniczeń widoczności. W następującym scenariuszu należy nacisnąć Ctrl+1, by wywołać szybką poprawkę:

Niewidoczne pole

Jeśli to pole posiada metodę pobierającą, można z niej skorzystać.

Użyj metody pobierającej

A jeśli pole nie posiada metody pobierającej, można taką metodę utworzyć.

Tworzenie metody pobierającej

Szablon do dodawania metod testów JUnit 4

Dodano nowy szablon Test w celu przyspieszenia procesu dodawania metod testów JUnit 4.

Kolorowanie składni w odniesieniu do nawiasów

Nawiasy mogą teraz w edytorze Java być kolorowane niezależnie od operatorów, co można ustawić na stronie preferencji Otwiera stronę preferencji Kolorowanie składni Java > Edytor > Kolorowanie składni:

Zrzut ekranu edytora Java pokazujący podświetlanie nawiasów

Koniec z pytaniami "Nie widzę pełnego źródła" na grupie dyskusyjnej

Grupa komend zawierająca przycisk paska narzędzi Pokaż kod źródłowy tylko wybranego elementu Obraz przycisku paska narzędzi jest teraz domyślnie ukryta. Ustawienie to można zmieniać za pomocą preferencji Otwiera stronę preferencji Edytora Java Java > Edytor > Pokazuj tylko wybrany element Java.

Konfigurowalna czcionka dokumentacji Javadoc

Czcionkę używaną do wyświetlania dokumentacji Javadoc można teraz konfigurować na stronie preferencji Otwiera stronę preferencji Kolory i czcionki Ogólne > Wygląd > Kolory i czcionki. Czcionka ustawiona w polu Czcionka wyświetlania Javadoc jest używana do wyświetlania dokumentacji i podpowiedzi Javadoc, jak również do wyświetlania dodatkowych informacji aktywnej obsługi treści.

Zrzut ekranu widoku Javadoc wyświetlającego dokumentację z wykorzystaniem niestandardowej czcionki

Kolor tła dla podpowiedzi kodu źródłowego

Kolor tła wszystkich podpowiedzi wyświetlających kod źródłowy w edytorze Java można teraz konfigurować na stronie preferencji Otwiera stronę preferencji Edytora Java Java > Edytor.

Zrzut ekranu przedstawiający podpowiedź kodu źródłowego z niestandardowym kolorem tła

W edytorze plików klas wyświetlany jest dezasemblowany kod

Jeśli kod źródłowy nie jest dostępny, w edytorze plików klas Java wyświetlany jest teraz dezasemblowany kod bajtowy.

Zrzut ekranu przedstawiający Edytor plików klas z dezasemblowanym kodem

Kompilator Java

Ulepszona obsługa duplikatów zmiennych i typów lokalnych

Narzędzia JDT lepiej radzą sobie teraz z obsługą błędów kodu wynikających ze zduplikowanych zmiennych i typów lokalnych, ze szczególnym uwzględnieniem minimalizacji liczby błędów drugorzędnych. Pozwala to narzędziom Java działać na niepoprawnym kodzie i oferować szybkie poprawki.

  • Funkcja lokalnej zmiany nazwy (Ctrl+2,R) jest teraz dostępna nawet w błędnych pętlach zagnieżdżonych, dzięki czemu można szybko poprawić nazwę zduplikowanej zmiennej wszędzie tam, gdzie ona występuje.

    Lokalna zmiana nazwy w przypadku zduplikowanych zmiennych lokalnych


  • Wywołanie metody lub uzyskanie dostępu do pola za pośrednictwem zduplikowanej zmiennej powoduje teraz odniesienie do najbliższej definicji zmiennej lokalnej, co oznacza ograniczenie liczby zgłaszanych błędów drugorzędnych.

    Wywołanie metody z wykorzystaniem zduplikowanych zmiennych lokalnych

Ulepszone sprawdzanie wartości NULL

Istniejąca opcja Puste odniesienia na stronie preferencji Otwiera stronę preferencji Błędy/Ostrzeżenia Java > Kompilator > Błędy/Ostrzeżenia została podzielona na trzy opcje:

  • Puste odwołanie wskaźnika (w kategorii "Potencjalne problemy programistyczne")
    Gdy opcja ta jest włączona, kompilator będzie zgłaszać błąd lub ostrzeżenie, jeśli zmienna, która statycznie zawiera wartość NULL, zostanie wykorzystana do uzyskania dostępu do pola lub metody, zgodnie z następującym przykładem:

    Przykład próby dostępu za pomocą pustego wskaźnika


  • Potencjalne puste odwołanie wskaźnika (w kategorii "Potencjalne problemy programistyczne")
    Gdy opcja ta jest włączona, kompilator będzie zgłaszać błąd lub ostrzeżenie w przypadku znalezienia zmiennej, która statycznie może zawierać wartość NULL, zgodnie z następującym przykładem:

    Przykład potencjalnej próby dostępu za pomocą pustego wskaźnika


  • Nadmiarowe sprawdzenie wartości NULL (kategoria "Zbędny kod")
    Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, gdy zmienna, która statycznie posiada wartość NULL lub inną niż NULL, jest testowana pod kątem wartości NULL, zgodnie z następującym przykładem:

    Przykład nadmiarowego sprawdzenia wartości NULL (wywołanie instanceof zawsze zwraca false)


    Przykład nadmiarowego sprawdzenia wartości NULL

Domyślnie włączone ostrzeżenia o surowych typach

Opcjonalna funkcja diagnostyczna kompilatora umożliwiająca wykrywanie wykorzystania typów surowych jest teraz domyślnie włączona.

Działanie tej funkcji diagnostycznej można skonfigurować na stronie preferencji Otwiera stronę preferencji Błędy/Ostrzeżenia Java > Kompilator > Błędy/Ostrzeżenia, w ramach preferencji Typy ogólne > Używanie typu surowego.

Przykład ostrzeżenia o surowym typie

Ulepszone ostrzeżenie o nieużywanym parametrze

Ostrzeżenie Nieużywany parametr zostało ulepszone poprzez dodanie nowej opcji pozwalającej uniknąć fałszywych alarmów. Za pomocą komentarza ze znacznikiem @param można teraz dodać wskazówkę dla kompilatora, informującą, że dany parametr jest w rzeczywistości używany.

Opcja ta jest dostępna na stronie preferencji Otwiera stronę preferencji Błędy/Ostrzeżenia Java > Kompilator > Błędy/Ostrzeżenia, w sekcji Zbędny kod.

Zrzut ekranu strony preferencji Błędy/Ostrzeżenia

Widoki i okna dialogowe Java

Kolorowe etykiety w widokach Java

Aby włączyć kolorowe etykiety w widokach Java, otwórz stronę preferencji Otwiera stronę preferencji wyglądu Java > Wygląd i zaznacz opcję Pokaż kolorowe etykiety.

Zrzut ekranu pokazujący Eksploratora pakietów z kolorowymi etykietami

Dekoracje pól przejściowych i ulotnych

Pola przejściowe (transient) i ulotne (volatile) mają teraz własne dekoracje ikon:

Zrzut ekranu przedstawiający pole przejściowe i ulotne

Grupowanie archiwów JAR i folderów klas w Eksploratorze pakietów

Używane biblioteki są teraz w Eksploratorze pakietów grupowane w obrębie nowego węzła kontenerowego.

Zrzut ekranu Eksploratora pakietów z pogrupowanymi bibliotekami

Więcej opcji wyszukiwania Java

Ulepszenia wprowadzone w oknie wyszukiwania Java pozwalają teraz bardziej precyzyjnie kontrolować zakres wyników poprzez ograniczanie zakresu wyszukiwania do kodu źródłowego, wymaganych projektów, bibliotek JRE lub bibliotek aplikacji.

Zrzut ekranu prezentujący okno dialogowe wyszukiwania z nowymi opcjami 'Szukaj w'

Filtr wyszukiwania dla odniesień do metody przesłoniętej

W mechanizmie wyszukiwania Java wprowadzono nowe kryterium kategoryzacji trafień dotyczących odniesień do metod. Możliwe jest teraz odróżnienie wywołania za pośrednictwem typu lub jednego z jego podtypów od wywołania za pośrednictwem nadtypu, które jest na ogół mniej precyzyjnym trafieniem. W widoku Wyszukiwanie dostępny jest teraz filtr umożliwiający dalsze zawężenie odwołań do wyszukiwanej metody.

W następującym przykładzie, użytkownik szukał odniesień do metody A.toString() i otrzymał 3 trafienia. Ponieważ o.toString() jest wywołaniem metody przesłanianej przez wyszukiwaną metodę A.toString(), można je odfiltrować z widoku Wyszukiwanie poprzez włączenie filtru "Odniesienia do przesłoniętych", zgodnie z następującym rysunkiem:

Przykład filtrowania odniesień do przesłoniętych

Uwaga: Filtr "Odniesienia do przesłoniętych" nie jest domyślnie włączony.

Wybór środowiska wykonawczego podczas tworzenia projektu Java

Podczas tworzenia projektu Java, który ma być współużytkowany z zespołem, dobrym zwyczajem jest używanie środowiska wykonawczego zamiast konkretnego środowiska JRE.

Środowiska wykonawcze to symboliczne reprezentacje środowisk JRE, zawierające standaryzowane wpisy, jak na przykład "J2SE-1.4" lub "J2SE-1.5". Dzięki temu w skład współużytkowanej ścieżki budowania nie wchodzi żadna ścieżka w systemie plików.

Środowiska JRE można przypisywać poszczególnym środowiskom wykonawczym na stronie preferencji Otwiera stronę preferencji Środowiska wykonawcze Java > Zainstalowane JRE > Środowiska wykonawcze.

Zrzut ekranu kreatora 'Nowy projekt Java'

Dodawanie nowego projektu Java do zbioru roboczego

Do kreatora Nowy projekt Java zostały dodane nowe pola wejściowe, umożliwiające określanie zbiorów roboczych, do których nowy projekt zostanie dodany. Pola są inicjalizowane na podstawie bieżącego wyboru lub aktualnie aktywnego filtru zbiorów roboczych w Eksploratorze pakietów.

Zrzut ekranu przedstawiający kreatora Nowy projekt Java

Przypisywanie do zbiorów roboczych

Teraz łatwiej jest zmieniać przynależność elementów lub zasobów Java do zbiorów roboczych. Aby przypisać element do innego zbioru roboczego, zaznacz element w Eksploratorze pakietów i z menu podręcznego wybierz opcję Przypisz zbiory robocze.

Zrzut ekranu przedstawiający okno dialogowe przypisania zbioru roboczego

Wklejenie deklaracji typu powoduje utworzenie nowego projektu

Każdy chyba chciał kiedyś szybko wypróbować otrzymany fragment kodu. Teraz wystarczy skopiować taki fragment do schowka, przejść do Eksploratora pakietów, upewnić się, że nic nie jest wybrane i wkleić kod (Edycja > Wklej lub Ctrl+V).

Środowisko Eclipse podejmie próbę przeanalizowania tekstu w schowku, a jeśli wygląda on na zawartość pliku *.java, zostanie utworzony nowy projekt Java zawierający taki właśnie plik *.java.

Po wklejeniu (utworzony i otwarty został plik *.java)

Podobnie jak w wersji 3.2, nadal można oczywiście wybrać istniejący projekt lub pakiet jako element docelowy dla nowego pliku.

Ulepszone wklejanie do Eksploratora pakietów

Wklejenie do Eksploratora pakietów kodu źródłowego Java zawierającego wiele deklaracji pakietów powoduje teraz automatyczne utworzenie wszystkich niezbędnych pakietów i jednostek kompilacji. Struktura widoczna z prawej strony jest tworzona w wyniku wklejenia fragmentu kodu widocznego z lewej strony do Eksploratora pakietów, gdy nic nie jest w nim wybrane:

package a;
public class Target {
}

//--
package b;
import a.Target;
public class Test {
  void reference() {
    new Target();
  }
}
            
Eksplorator pakietów wyświetlający strukturę utworzonego projektu i pakietów

Cofanie kasowania w widokach Java

Operacja Edycja > Cofnij jest teraz również dostępna w przypadku usuwania elementów Java z widoków Java. Przypadkowo usunięte pakiety, jednostki kompilacji itd. można łatwo przywrócić naciskając Ctrl+Z.

Przeciąganie i upuszczanie elementów Java w Eksploratorze projektów

Przeciąganie i upuszczanie elementów Java w Eksploratorze projektów powoduje teraz wyzwalanie zdarzeń refaktoryzacji Java (podobnie jak w Eksploratorze pakietów).

Przykład przeciągania i upuszczania elementów Java

Eksportowanie i importowanie wykonań testów JUnit

Wykonania testów JUnit można teraz eksportować i importować.

Menu widoku JUnit z operacjami Import i Eksport

Obecnie środowisko Eclipse obsługuje odczyt własnych plików XML zapisu wykonań testów, jak również plików XML generowanych przez zadanie Ant JUnit.

Otwieranie wielu typów naraz

Okno dialogowe Otwórz typ (Ctrl+Shift+T) umożliwia teraz otwieranie wielu edytorów naraz.

Wielokrotny wybór w oknie dialogowym Otwórz typ

Wyszukiwanie według wzorców w pakietach i typach obejmujących

W definicjach pakietów i typów obejmujących podawanych w oknie dialogowym Otwórz typ mogą być używane symbole wieloznaczne '*' i '?'.

Przykład okna dialogowego Otwórz typ: java.*.ChangeHandler

Debuger Java

Podążaj za odniesieniami (tylko Java SE 6)

Możliwe jest wyświetlenie wszystkich odniesień do obiektu (funkcja dostępna wyłącznie w przypadku debugowania w maszynie wirtualnej Java SE 6). Odniesienia do obiektów można wyświetlać w widoku zmiennych poprzez włączenie opcji Pokaż odniesienia w menu widoku. Odniesienia do każdego obiektu są grupowanie w ramach kolekcji.

Przełącznik Pokaż odniesienia w menu widoku

Odniesienia mogą też być wyświetlane w podręcznym oknie dialogowym poprzez zaznaczenie obiektu w widoku zmiennych i wybranie z menu kontekstowego opcji Wszystkie odniesienia.

Opcja Wszystkie odniesienia w menu kontekstowym

Odniesienia są wyświetlane w podręcznym oknie dialogowym.

Podręczne okno dialogowe wyświetlające odniesienia

Wyświetlaj instancje (tylko Java SE 6)

Możliwe jest wyświetlanie wszystkich instancji danego typu Java (funkcja dostępna wyłącznie w przypadku debugowania w maszynie wirtualnej Java SE 6). Instancje są wyświetlane w podręcznym oknie dialogowym po wybraniu typu w schemacie edytora, nazwy typu w edytorze Java lub zmiennej w widoku Zmienne, a następnie wybraniu z menu kontekstowego opcji Wszystkie instancje.

Opcja Wszystkie instancje w menu kontekstowym

Instancje są wtedy wyświetlane w podręcznym oknie dialogowym.

Podręczne okno dialogowe wyświetlające instancje

Wymuś powrót (tylko Java SE 6)

Możliwe jest wymuszenie wcześniejszego powrotu z metody (komenda jest dostępna wyłącznie w przypadku debugowania w maszynie wirtualnej Java SE 6). Powoduje to zwrócenie wartości z bieżącej ramki stosu bez wykonywania żadnych dalszych instrukcji metody, a jednocześnie zwolnienie wszelkich blokad pozyskanych przez bloki synchronizowane. Utworzenie wartości zwracanej polega na wybraniu wyrażenia i akcji Wymuś powrót (Alt+Shift+F). Operacja ta jest dostępna w menu kontekstowym edytora Java, głównym menu Wykonaj, widoku Wyświetlanie oraz panelu szczegółów widoku Zmienne.

Wymuszenie wcześniejszego powrotu z metody zwracającej wartość (typ inny niż void) wymaga wartościowania wyrażenia. Jeśli na przykład metoda miała zwrócić wartość false, można wymusić zwrócenie wartości true poprzez wybranie wyrażenia w widoku Wyświetlanie i wywołanie komendy Wymuś powrót. W następującym przykładzie zmienna elementCount ma wartość różną od zera, a metoda zwróciłaby wartość false (podpowiedź debugowania pokazuje wartość zmiennej elementCount).

Metoda która zwróciłaby wartość false, gdyż elementCount != 0

Wybierając opcję Wymuś powrót z menu Wyświetlanie można wymusić zwrócenie wartości true.

Zaznacz wyrażenie i wybierz z menu kontekstowego opcję Wymuś powrót

Przechodzenie krokowe za pomocą odsyłaczy

Podczas debugowania można wchodzić do metody za pośrednictwem odsyłaczy. W tym celu użyj kombinacji Ctrl+Alt+kliknięcie, by wejść do metody (w odróżnieniu od kombinacji Ctrl+kliknięcie, która spowoduje przejście do kodu źródłowego).

Wejście do metody z wykorzystaniem odsyłacza (Ctrl+Alt)

Dwukrotne kliknięcie i Ctrl+Shift+B dla wielu typów punktów zatrzymania

Dwukrotne kliknięcie pionowej linijki lub wywołanie operacji Przełącz punkt zatrzymania (Ctrl+Shift+B) powoduje teraz utworzenie punktu zatrzymania o typie odpowiednim dla bieżącego położenia kursora, a więc punktu zatrzymania wiersza, punktu kontrolnego, punktu zatrzymania metody lub punktu zatrzymania ładowania klasy. Aby utworzyć punkt zatrzymania ładowania klasy, dwukrotnie kliknij w wierszu deklaracji klasy.

Punkt zatrzymania ładowania klasy

Filtry wykonywania krokowego a wykonywanie do instrukcji

Filtry wykonywania krokowego można skonfigurować tak, by zawsze powracały z położenia filtrowanego lub przechodziły do położenia niefiltrowanego. Jeśli na przykład java.util jest położeniem filtrowanym, wejście do kodu klasy HashMap może powodować wywołanie zwrotne do kodu debugowanej aplikacji w celu sprawdzenia równości obiektu. Jeśli zostanie ustawiona opcja Przechodzenie przez filtry, wejście do kroku spowodowałoby przejście do kodu debugowanej aplikacji. Jeśli jednak opcja Przechodzenie przez filtry jest wyłączona, wejście do klasy HashMap miałoby taki sam skutek, jak przejście.

Funkcję tę można przełączać za pomocą opcji Przechodzenie przez filtry na stronie preferencji Otwiera stronę preferencji Filtrowanie kroków Java > Debugowanie > Filtrowanie kroków.

Automatyczne formatowanie śladów stosu

Możliwe jest automatyczne formatowanie śladów stosu wklejanych do konsoli śladów stosu Java. Na pasku narzędzi konsoli dostępny jest przełącznik Automatyczne formatowanie.

Przycisk Automatyczne formatowanie na pasku narzędzi konsoli śladów stosu

Eksportowanie struktur logicznych

Preferencje dotyczące struktur logicznych Java można teraz eksportować i importować niezależnie od innych preferencji obszaru roboczego. Struktury logiczne Java są definiowane na stronie preferencji Otwiera stronę preferencji Struktury logiczne Java > Debugowanie > Struktury logiczne. Struktury logiczne służą do definiowania alternatywnych prezentacji złożonych struktur danych i są wyświetlane podczas badania obiektów w widoku Zmienne. Pozwala to na przykład wyświetlać obiekt typu java.util.Collection jako tablicę, bez ujawniania wewnętrznej struktury danych faktycznie implementującej kolekcję.

Eksportowanie struktur logicznych

Różne

Nowe opcje formatera kodu

Do strony preferencji Otwiera stronę preferencji formatera Java > Styl kodu > Formater dodano nowe opcje:

  • Formatowanie komentarzy można teraz włączać lub wyłączać dla każdego typu komentarza z osobna (komentarzy Javadoc, blokowych, jednowierszowych i nagłówkowych). Możliwe jest również wyłączenie tworzenia wcięć dla komentarzy blokowych i wierszowych w pierwszej kolumnie.

    Zrzut ekranu przedstawiający okno dialogowe zmiany preferencji formatera


  • Na karcie Puste wiersze można ustawiać liczbę pustych wierszy wstawianych przez operację Organizuj importy (Ctrl+Shift+O) między grupami importów. Ustawienie to ma podczas formatowania pierwszeństwo przed ustawieniem liczby zachowywanych pustych wierszy.

    Zrzut ekranu strony preferencji formatera, z zaznaczoną opcją 'Puste wiersze między grupami importów'


  • Wyrażenia binarne mogą teraz być zawijane przed operatorem lub po nim.

    Zrzut ekranu przedstawiający okno dialogowe zmiany preferencji formatera


  • W kategorii instrukcji powrotu można teraz włączyć lub wyłączyć wstawianie odstępów przed ujętym w nawiasy wyrażeniem instrukcji throw. Opcja ta jest dostępna na karcie Odstępy.

    Zrzut ekranu strony preferencji formatera z włączoną opcją odstępu przed wyrażeniem instrukcji throws

Reguły dostępu do środowisk wykonawczych

Reguły dostępu są teraz przypisywane każdemu środowisku wykonawczemu na podstawie jego profilu. Na przykład istnieją reguły uniemożliwiające dostęp do pakietów com.sun.*, których dostępność w czasie wykonania nie jest gwarantowana. Reguły są stosowane tylko do projektów, które są związane ze środowiskami wykonawczymi. Projekty związane z konkretnym środowiskiem JRE nadal mają dostęp do wszystkich udostępnianych bibliotek.

Reguły dostępu do bibliotek systemowych

Nieaktualne i dostępne tylko do odczytu zmienne ścieżki klas

Punkt rozszerzenia org.eclipse.jdt.core.classpathVariableInitializer pozwala teraz deklarować zdefiniowane przez system zmienne ścieżki klas jako nieaktualne lub dostępne tylko do odczytu.

Użytkownicy powinni zastępować nieaktualne zmienne ścieżek klas lepszymi mechanizmami, takimi jak biblioteki.

Okno dialogowe ścieżki budowania Java z nieaktualnymi zmiennymi

W przypadku niektórych zmiennych (np. JUNIT_HOME), widok Problemy udostępnia nawet szybkie poprawki ułatwiające migrowanie istniejących projektów.

Ścieżki względem obszaru roboczego jako położenie dokumentacji Javadoc

Jako położenia dokumentacji Javadoc dla archiwów i folderów klas są teraz akceptowane ścieżki względem obszaru roboczego:

Zrzut ekranu okna dialogowego konfiguracji położenia dokumentacji Javadoc

Generowanie typów podczas wykonania

Mechanizm przetwarzania adnotacji Java 5 (APT) wprowadzono już w wersji 3.2 środowiska Eclipse, jednak jak dotąd jedynym sposobem generowania nowych typów było wykonanie budowania. Obiekty przetwarzające adnotacje Java 5 mogą teraz generować nowe typy podczas pracy, w miarę edytowania adnotacji. Ze względów wydajnościowych, funkcja ta jest domyślnie wyłączona. Aby ją włączyć, obiekt przetwarzający powinien dołączać łańcuch "enableTypeGenerationInEditor" do zestawu łańcuchów zwracanego przez metodę AnnotationProcessorFactory.supportedOptions().

Przetwarzanie adnotacji Java 6

Środowisko Eclipse 3.3 w pełni obsługuje przetwarzania adnotacji Java 6 w kompilatorze wsadowym Java środowiska Eclipse. Przetwarzanie adnotacji Java 6 jest również w minimalnym stopniu obsługiwane w środowisku IDE, a w przyszłości planowane jest rozszerzenie zakresu jego obsługi.