2009-04-23 6 views

答えて

22

方法:

if (theObject instanceof int[]) { 
    // use it! 
} 

配列は、彼らがプリミティブの配列の方にも、Objectsです。

+1

イエップ。それはそれを行う方法です。私は私の答えよりも良い方法があることを知っていた。 – MBCook

0

変数の実行時クラスをクラス名のように1次元配列として取得する[int 2次元配列の場合、クラス名は[[int、3次元クラス名は[[[ int型

if (j.class.Name.equals("[int")) { 
    ...... 
} 
+0

反射も機能しますが、質問に多次元配列は言及していません。 –

+0

j.getClass()。getName()でなければなりません.j.class.Nameではありません。 –

+0

j.classもJava 6でも動作します。そうでなければ、ポイントはうまく伝えられます。しかし、私はそれがクラスメソッドへの呼び出しでコンパイル時に推測されたと思うので、instanceofは良いでしょう。しかし、私はこれを追加している別の命題を提供するために。 –

1
if (o instanceof int[]) 
{ 
... 
} 

配列は、Javaのオブジェクトです。

0

intanceofは最も簡単ですが、あなたが求めるものは文字通りです。

if (o.getClass() == int[].class) 
+2

重要:oはnullであればinstanceofはNullPointerExceptionをスローしませんが、これは – Kip

関連する問題