Obtenga nombres de clase absolutos de un paquete en tiempo de ejecución

Si tenemos un nombre de paquete, digamos .. com.google.foo.bar y tiene clases como

com.google.foo.bar.xyz

com.google.foo.bar.abc

. .

¿Cómo puedo obtener esos nombres en tiempo de ejecución? Por absoluto, quiero decir... nombre del paquete+nombre de la clase. ¿Hay algún término para eso?

preguntado el 28 de julio de 12 a las 16:07

¿Quiere decir: cómo puedo obtener la lista de todas las clases contenidas en un paquete específico en tiempo de ejecución? ¿O simplemente desea el nombre de clase completo (paquete.ClassName) de un objeto específico en tiempo de ejecución? -

@assylias - lista de todas las clases.. -

Esta entrada podría ser un punto de partida. -

1 Respuestas

public String getSourceBase(Class<?> classx)
{
    String cn = classx.getName().replace('.', '/') + ".class";
    // like "packagex/SourceBase.class"

    String s = classx.getResource('/' + cn).toExternalForm();
    // like "file:/javadir/Projects/projectX/build/classes/packagex/SourceBase.class"
    // or "jar:file:/opt/java/PROJECTS/testProject/dist/testProject.jar!/px/SourceBase.class"

    return s.substring(0, s.lastIndexOf(cn));
    // like "file:/javadir/Projects/projectX/build/classes/"
    // or "jar:file:/opt/java/PROJECTS/testProject/dist/testProject.jar!/"

}

Respondido 28 Jul 12, 16:07

El problema es que se leerá un nombre de paquete del archivo de configuración y, en base a eso, necesito encontrar todas las clases con su nombre de paquete. - vidit

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