Kullanabilirsiniz instanceof
.
RelationalExpression:
RelationalExpression instanceof ReferenceType
Çalışma zamanında, sonucu instanceof
operatörü olan true
değeri ise RelationalExpression değildir null
ve referans için gölgeleri olabilir ReferenceType bir artırmadan ClassCastException
. Aksi takdirde sonuç olur false
.
Bu, bunun gibi bir şey yapabileceğiniz anlamına gelir:
Object o = new int[] { 1,2 };
System.out.println(o instanceof int[]); // prints "true"
Sen nesne bir olup olmadığını kontrol etmek olurdu instanceof boolean[]
, byte[]
, short[]
, char[]
, int[]
, long[]
, float[]
, double[]
, veya Object[]
, tüm dizi türlerini tespit etmek istiyorum.
Ayrıca, an int[][]
birdir instanceof Object[]
, dolayısıyla iç içe dizileri nasıl işlemek istediğinize bağlı olarak karmaşıklaşabilir.
İçin toString
, java.util.Arrays
bir sahip toString(int[])
ve kullanabileceğiniz diğer aşırı yüklenmeleri. deepToString(Object[])
İç içe diziler için de vardır .
public String toString(Object arr) {
if (arr instanceof int[]) {
return Arrays.toString((int[]) arr);
} else //...
}
Çok tekrarlı olacak (ama hatta java.util.Arrays
çok tekrarlayıcı ), ama dizilerle Java'da durum budur.
Ayrıca bakınız
obj.getClass().getComponentType()
.