2011-08-10 8 views
7

Tengo un problema.Recuperando el nombre de la clase de array

En un método que recibe un objeto general como parámetro y tengo que recuperar el nombre de la clase

public void myMethod(Object o) 
    String className = o.getClass().getName(); 
    ... 
} 

Funciona, excepto cuando doy a las matrices de métodos. Por ejemplo, si un pase al método una matriz de doble (double[]), getClass().getName() me devuelve [D

¿Cómo puedo recuperar algo así como double[]?

Respuesta

12

[D significa una serie de dobles. Consulte this link para obtener una explicación sobre los nombres de las clases. ¿Por qué le gustaría algo así como double[] en su lugar?

+1

+1 para el enlace. Nunca vi eso antes, ¡aprendí algo nuevo! – Qwerky

+3

@Fortega Necesito el doble [] porque es más claro que [D, pensé que [D podría ser un identificador no único. De todos modos 'getCanonicalName' devuelve double [] – Maverik

+0

Una razón para necesitar' double [] 'es si está creando enlaces JavaDoc. – aliteralmind

1

si se le da el uso de la clase contenedora, se obtiene '[Ljava.lang.Double'

Double[] d = new Double[10] 

d.getClass(). GetName() le da [Ljava.lang.Double

+1

@lucaghera: De todos modos, como dijiste, getCannonicalName te devuelve el doble [] –

2

simple nombre de la clase es lo que busca:

System.out.print(new String[0].getClass().getSimpleName()); 

y el resultado bien puede ser:

String[] 
Cuestiones relacionadas