คุณสามารถใช้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()
เวิเพิ่มว่าคุณสามารถหาชนิดอาร์เรย์โดยใช้