Anda bisa menggunakan instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
Pada waktu berjalan, hasil dari instanceof
operator adalah true
jika nilai RelationalExpression tidak null
dan referensi dapat dikirim ke ReferenceType tanpa menaikkan a ClassCastException
. Jika tidak, hasilnya adalah false
.
Artinya, Anda dapat melakukan sesuatu seperti ini:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
Anda harus memeriksa apakah objek adalah instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
, atau Object[]
, jika Anda ingin mendeteksi semua jenis larik.
Juga, an int[][]
adalah an instanceof Object[]
, jadi tergantung bagaimana Anda ingin menangani array bersarang, ini bisa menjadi rumit.
Untuk toString
, java.util.Arrays
memiliki toString(int[])
dan kelebihan lainnya yang dapat Anda gunakan. Ini juga memiliki deepToString(Object[])
untuk array bersarang.
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Ini akan menjadi sangat berulang (tetapi bahkan java.util.Arrays
sangat berulang ), tapi begitulah di Java dengan array.
Lihat juga
obj.getClass().getComponentType()
.