Puede utilizar instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
En tiempo de ejecución, el resultado del instanceof
operador es true
si el valor de RelationalExpression no lo es null
y la referencia podría convertirse en ReferenceType sin generar un ClassCastException
. De lo contrario, el resultado es false
.
Eso significa que puedes hacer algo como esto:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
Habría que comprobar si el objeto es una instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
, o Object[]
, si se quiere detectar todos los tipos de matriz.
Además, an int[][]
es an instanceof Object[]
, por lo que, dependiendo de cómo desee manejar las matrices anidadas, puede complicarse.
Para el toString
, java.util.Arrays
tiene una toString(int[])
y otras sobrecargas que puede usar. También tiene deepToString(Object[])
para matrices anidadas.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Va a ser muy repetitivo (pero incluso java.util.Arrays
muy repetitivo ), pero así es en Java con matrices.
Ver también
obj.getClass().getComponentType()
.