Estoy tratando de depurar un programa que yo he heredado. Este programa contiene Cadenas de caracteres, matriz de listas y colecciones, muchas de casting entre los tipos, y necesito hacer algunas manipulaciones de cadenas (substring, etc.)

Los datos mirada como Cadenas cuando se imprimen en la consola (por ejemplo, es una línea de texto, como Johnson, John o Chicago Region), pero mi código es erroring a cabo con diversas index out of range errores, lo que sugiere que mi código para la conversión a Cadena no está funcionando.

Me gustaría tratar de averiguar qué tipos de datos son los que entran y dejando mis métodos para verificar que el programa está actuando como se espera. Es allí cualquier manera de encontrar un tipo de campo en Java? En un mundo perfecto, yo podría generar la salida de la consola a cada paso que me daría el valor de los datos y si es un String, array lista o colección. Que se puede hacer?

  • Por cierto, si usted no está consiguiendo un ClassCastException, a continuación, el elenco a String está trabajando.
InformationsquelleAutor dwwilson66 | 2012-05-03

5 Comentarios

  1. 49

    Dada una instancia de un objeto, se puede llamar a la getClass() método para obtener una instancia de la Clase de objetos que describen el tipo de objeto.

    Utilizando el objeto de la Clase, usted puede fácilmente imprimir el nombre de tipo:

    Integer number=Integer.valueOf(15);
    System.out.println(number.getClass().getName());

    Esta impresión de la consola el nombre completo de la clase, que para el ejemplo es:

    java.lang.Integer

    Si quieres una forma más concisa de salida, puede utilizar en su lugar:

    Integer number=Integer.valueOf(15);
    System.out.println(number.getClass().getSimpleName());

    getSimpleName() dará sólo el nombre de la clase:

    Integer

    La impresión de que el tipo de variables primitivas es un poco más complejo: ver de este MODO la pregunta para más detalles.

  2. 6

    Para cualquier objeto x, se puede imprimir x.getClass().

    • Me gustaría hacer x.getClass.getName()
    • ¿Qué acerca de null instancias?
    • null){ sout(«null»)}
    • Y qué acerca de las matrices? Las matrices de objetos o primitivas?
    • Una matriz de ints imprimirá [I, por ejemplo.
  3. 0

    instance.getClass() es el camino a seguir si usted sólo desea imprimir el tipo. También puede utilizar instanceof si desea rama de la conducta en el tipo por ejemplo,

    if ( x instanceof String )
    {
       //handle string
    }

Dejar respuesta

Please enter your comment!
Please enter your name here