Vous pouvez utiliser instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
Au moment de l'exécution, le résultat de la instanceof
L'opérateur est true
si la valeur de la Expression relationnelle n'est pas null
et la référence pourrait être coulée dans le Type de référence sans soulever un ClassCastException
. Sinon, le résultat est false
.
Cela signifie que vous pouvez faire quelque chose comme ça :
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
Il faudrait vérifier si l'objet est un instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
ou Object[]
si vous voulez détecter tous les types de tableaux.
En outre, un int[][]
est un instanceof Object[]
En fonction de la façon dont vous voulez gérer les tableaux imbriqués, cela peut devenir compliqué.
Pour le toString
, java.util.Arrays
a un toString(int[])
et d'autres surcharges que vous pouvez utiliser. Il dispose également de deepToString(Object[])
pour les tableaux imbriqués.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Cela va être très répétitif (mais même java.util.Arrays
est très répétitif ), mais c'est ainsi que cela se passe en Java avec les tableaux.
Voir aussi