2009-11-05 9 views

Respuesta

11

Si no desea crear una instancia, se podría crear el nombre canónico de la matriz de forma manual y obtener la clase por su nombre:

// Replace `String` by your object type. 
Class stringArrayClass = Class.forName(
    "[L" + String.class.getCanonicalName() + ";" 
); 

Pero Jakob Jenkov argues in his blog que su solución es la mejor, porque no necesita tocar las cuerdas.

Class stringArrayClass = Array.newInstance(String.class, 0).getClass(); 
+2

Comienza con lo anterior y termina con lo que tengo. Así que supongo que la 'nuevaInstancia' es la forma más limpia de hacer esto. –

+0

En realidad funciona en ambos sentidos, pero dijiste que no querías crear una nueva instancia. –

+0

Es cierto. En realidad estaba buscando una solución más limpia. No es que no quiera la nueva instancia, pero preferiría no tenerla :-) –

-1
Class stringArrayOfClass = String[].class; 
+0

No sé el tipo por adelantado; está en una variable de clase. Entonces tu método no funcionaría. –

+2

Gracias por señalar eso –

Cuestiones relacionadas