Bạn có thể sử dụng instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
Tại thời điểm chạy, kết quả của instanceof
toán tử là true
nếu giá trị của RelationalExpression không phải là giá trị null
và tham chiếu có thể được truyền tới ReferenceType mà không cần tăng a ClassCastException
. Nếu không thì kết quả là false
.
Điều đó có nghĩa là bạn có thể làm điều gì đó như sau:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
Bạn sẽ phải kiểm tra xem đối tượng là một instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
, hoặc Object[]
, nếu bạn muốn để phát hiện tất cả các loại mảng.
Ngoài ra, an int[][]
là một instanceof Object[]
, vì vậy tùy thuộc vào cách bạn muốn xử lý các mảng lồng nhau, nó có thể trở nên phức tạp.
Đối với toString
, java.util.Arrays
có một toString(int[])
và các quá tải khác mà bạn có thể sử dụng. Nó cũng có deepToString(Object[])
cho các mảng lồng nhau.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Nó sẽ rất lặp lại (nhưng thậm chí java.util.Arrays
là rất lặp lại ), nhưng đó là cách nó xảy ra trong Java với mảng.
Xem thêm
obj.getClass().getComponentType()
.