사용할 수 있습니다 instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
런타임에 instanceof
연산자 의 결과 true
는 RelationalExpression 의 값 이 아닌 경우 null
이고 참조 는를 발생시키지 않고 ReferenceType 으로 캐스팅 될 수 있습니다 ClassCastException
. 그렇지 않으면 결과는 false
입니다.
즉, 다음과 같이 할 수 있습니다.
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
당신은 객체가이 있는지 확인해야 할 것 instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
, 또는 Object[]
, 당신은 모든 배열 유형을 감지합니다.
또한 an int[][]
은 instanceof Object[]
이므로 중첩 배열을 처리하려는 방법에 따라 복잡해질 수 있습니다.
를 들어 toString
, java.util.Arrays
이 toString(int[])
당신이 사용할 수있는 다른 오버로드. 또한이 deepToString(Object[])
중첩 배열을 위해.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
매우 반복적 일 것입니다 (하지만 java.util.Arrays
매우 반복적입니다. ). 그러나 그것은 배열이있는 Java에서하는 방식입니다.
또한보십시오
obj.getClass().getComponentType()
.