2011-01-10 20 views
6

Si tengo un proyecto de Java en Eclipse, puedo hacer clic derecho en el nombre de un método y "Abrir jerarquía de llamadas". Supongamos que tengo dos interfaces, A y B, que ambas especifican un método x(). ¿Es posible para mí hacer que Eclipse use la "Jerarquía de llamadas abiertas" de una manera más inteligente para que solo se muestren las llamadas a x() desde A mientras no se muestran las de B?Más Intelligent Eclipse "Open Call Hierarchy"?

Respuesta

6

Eclipse ya debería hacer esto. Si desea probarlo, vaya a la interfaz A, seleccione el método x() y ejecute 'Abrir jerarquía de llamadas' en él. Haga lo mismo para su método x() en la interfaz B. Deberías obtener diferentes ubicaciones de códigos, a menos que tengas una clase que implemente ambos, lo cual nunca debes hacer. Hacerlo no romperá ninguna compilación o ejecución, solo declarará doblemente la misma firma de método.

+0

Ahora estoy empezando a confundirme. Cuando en realidad probé el ejemplo falso, se comporta como usted lo explica, pero mi ejemplo real con jerarquías * más complicadas parece sufrir el fenómeno que describí. –

3

He intentado esto con un método reemplazado con frecuencia, toString(). Cuando hago clic derecho sobre él y elijo "Abrir jerarquía de llamadas", Eclipse busca felizmente a través de todo mi espacio de trabajo y devuelve todas las referencias a la firma de ese método.

A menudo confío en Eclipse para ir en la dirección opuesta: selecciono una invocación a un método y presiono F3 para abrir la declaración. Pero no creo que Eclipse pueda ir en la dirección que desee, desde la declaración hasta la referencia de la llamada.

2

Puede ser útil eliminar "Posibles coincidencias" de los resultados de búsqueda. Prueba esto:

Preferences -> General -> Search

, y marca "Ignorar posibles coincidencias".