2012-09-21 33 views
6

Mam kilka kolekcji, które chciałbym analizować w debugerze Eclipse. Interesuje mnie konkretny atrybut każdego elementu.Debugger Eclipse i kolekcje

Weźmy przykład z listą Person s (każda z atrybutem address, który z kolei ma atrybut city). W debugerze mogę albo spojrzeć na każdy element, albo spojrzeć na list.get(i).address.city.

W przypadku dużych konstrukcji nie jest to pomocne. Czy istnieje możliwość zastosowania funkcji do struktury danych, coś podobnego do funkcji map w Perlu (w debugerze nie w kodzie).

Dane wejściowe będą moją listą ze ścieżką, którą mnie interesują (Person.address.city), wynikiem jest lista z wybranymi elementami (lista miast z moim przykładem).

W Perl:

map { $_->{address}->{city} } @list 

Edit

jestem w stanie wygenerować String z formater szczegółów:

StringBuilder sb = new StringBuilder(); 
for (Person p : this) { 
    sb.append(p.address.city()); 
    sb.append(", "); 
} 
return sb.toString(); 

To będzie sformatować moją listę z tylko elementy, którymi jestem zainteresowany (jako String).

Chociaż idzie w dobrym kierunku, byłoby miło, gdybym mógł zwrócić nowy List, który mogę analizować za pomocą debuggera.

Odpowiedz

3

Myślę, że funkcja Eclipse Debugger, którą jesteś zainteresowany, nazywa się strukturami logicznymi. Można zdefiniować strukturę logiczną w preferencjach Eclipse (Java/Debug/Struktury logiczne), gdzie można napisać takie wyrażenie (miejmy nadzieję), a następnie w widoku zmiennych można zastąpić wyświetlanie listy w wyskakującym menu.

Zobacz ten post na blogu dla podstawowych idei: http://www.javalobby.org/forums/thread.jspa?threadID=16736&messageID=91823528

2

Wyświetlacz View oferuje możliwość wykonywania kodu niestandardowego w każdym przerwania. Po prostu odczytaj strukturę danych w punkcie przerwania i wydrukuj ją na konsoli.