Hacer un código más legible

Tengo dos clases en mi aplicación con nombres idénticos, no puedo cambiarles el nombre, una de ellas es del paquete A y la segunda del paquete B, el nombre de esta clase es Estado y tengo que usarla en un lugar de mi programa de esta manera:

 Map<Integer,Set<org.omg.PortableServer.POAManagerPackage.State>>  

¿Hay alguna forma (pero usando esta clase) para hacer esto algo más legible (para acortarlo un poco)?

preguntado el 01 de julio de 12 a las 11:07

Hoy aprendí: no se puede importar estáticamente un paquete, solo un tipo. Esa iba a ser mi sugerencia -

3 Respuestas

Posiblemente derive de una de las clases para eliminar la ambigüedad. por ejemplo, en POAState.java:

import org.omg.PortableServer.POAManagerPackage.State;

public class POAState extends State {}

entonces:

Map<Integer,Set<POAState>> my_map;

Respondido 01 Jul 12, 11:07

Cree una clase envolvente que solo tendrá Set<org.omg.PortableServer.POAManagerPackage.State> y todo lo necesario Set métodos.

uso en el cliente:

Map<Integer,GoodWrappingSetName> 

Respondido 01 Jul 12, 11:07

Si usas los dos diferentes State clases en la misma pieza de código (archivo *.java), entonces la respuesta es "No", Java no proporciona una notación abreviada. Debe ser explícito e incluir los nombres completos de los paquetes para eliminar la ambigüedad.

@dantuch ha planteado una idea interesante, pero en lugar de envolver la clase, si puede extender una de ellas, puede crear una subclase vacía de State que simplemente difiere toda su implementación a la clase principal.

public MyState extends State {
    // no implementation required
}

Luego puede consultar MyState

Respondido 01 Jul 12, 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.