2012-09-21 18 views
6

Tengo algunas colecciones que me gustaría analizar en el depurador de Eclipse. Estoy interesado en un atributo particular de cada elemento.Depurador y colecciones de Eclipse

Tomemos un ejemplo con una lista de Person s (cada uno con un atributo address que a su vez tiene un atributo city). En el depurador, puedo mirar cada elemento o mirar list.get(i).address.city.

Hacer esto para estructuras grandes no es realmente útil. ¿Existe la posibilidad de aplicar una función a una estructura de datos, algo similar a la función map en Perl (en el depurador no en el código).

La entrada sería mi lista con la ruta que me interesa (Person.address.city), la salida es una lista con solo los elementos seleccionados (una lista de ciudades con mi ejemplo).

En Perl:

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

Editar

soy capaz de generar una String con un formateador Detalle:

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

Esto le formatear mi lista con sólo el elementos que me interesan (como String).

Aunque va en la dirección correcta sería bueno si pudiera devolver un nuevo List que puedo analizar con el depurador.

Respuesta

3

Creo que la función Eclipse Debugger que le interesa se llama estructuras lógicas. Podría definir una estructura lógica en las preferencias de Eclipse (estructuras Java/Debug/Logical), donde podría escribir dicha expresión (con suerte), y luego en la vista de variables podría reemplazar la visualización de la lista en el menú emergente.

Ver esta entrada del blog de ideas básicas: http://www.javalobby.org/forums/thread.jspa?threadID=16736&messageID=91823528

2

El Display Vista le proporciona la capacidad de ejecutar código personalizado en cada punto de interrupción. Simplemente lea su estructura de datos en el punto de interrupción e imprimala en la consola.

Cuestiones relacionadas