Sie können verwenden instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
Zur Laufzeit ist das Ergebnis des instanceof
Operators, true
wenn der Wert von RelationalExpression nicht lautet null
und die Referenz in den ReferenceType umgewandelt werden kann, ohne a auszulösen ClassCastException
. Ansonsten ist das Ergebnis false
.
Das heißt, Sie können so etwas tun:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
Sie müßten überprüfen , ob das Objekt ein instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
, oder Object[]
, wenn Sie alle Array - Typen erkannt werden sollen.
Außerdem int[][]
ist an ein instanceof Object[]
. Je nachdem, wie Sie mit verschachtelten Arrays umgehen möchten, kann dies kompliziert werden.
Für die toString
, java.util.Arrays
hat eine toString(int[])
und andere Überlastungen Sie verwenden können. Es hat auch deepToString(Object[])
für verschachtelte Arrays.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Es wird sich sehr wiederholen (aber es wird sich auch java.util.Arrays
sehr wiederholen ), aber so ist es in Java mit Arrays.
Siehe auch
obj.getClass().getComponentType()
.