คุณสามารถใช้instanceof.
RelationalExpression:
RelationalExpression instanceof ReferenceType
ในขณะรันผลลัพธ์ของตัวinstanceofดำเนินการคือtrueถ้าค่าของRelationalExpressionไม่ใช่nullและการอ้างอิงสามารถส่งไปยังReferenceType ได้โดยไม่ต้องเพิ่มค่าClassCastException. falseมิฉะนั้นผลที่ได้คือ
นั่นหมายความว่าคุณสามารถทำสิ่งนี้ได้:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]);
คุณจะต้องตรวจสอบว่าวัตถุที่เป็นinstanceof boolean[], byte[], short[], char[], int[], long[], float[], double[]หรือObject[]ถ้าคุณต้องการที่จะตรวจสอบทุกประเภทอาร์เรย์
นอกจากนี้ an int[][]เป็นinstanceof Object[]ดังนั้นขึ้นอยู่กับว่าคุณต้องการจัดการอาร์เรย์ที่ซ้อนกันอย่างไรก็อาจมีความซับซ้อนได้
สำหรับtoString, java.util.ArraysมีtoString(int[])และ overloads อื่น ๆ ที่คุณสามารถใช้ นอกจากนี้ยังมีdeepToString(Object[])สำหรับอาร์เรย์ที่ซ้อนกัน
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else
}
มันจะซ้ำซากมาก (แต่java.util.Arraysก็ซ้ำซากมาก ) แต่นั่นเป็นวิธีที่อยู่ใน Java ที่มีอาร์เรย์
ดูสิ่งนี้ด้วย
obj.getClass().getComponentType()เวิเพิ่มว่าคุณสามารถหาชนิดอาร์เรย์โดยใช้