2

Javaでは、オブジェクトがオブジェクトコレクションかどうかを調べたい??

String [] abc=new String[]{"Joe","John"};
Object ob=abc;

変数オブジェクトがオブジェクトコレクションを保持していることを確認したい??どうすればこれを行うことができますか??

4

4 に答える 4

2

次のように、Java リフレクションを使用できます。

Class<?> clazz = ob.getClass();
boolean isArray = clazz.isArray();
于 2013-01-25T06:34:24.910 に答える
1

instanceofオペレーターに確認。

instanceof 演算子は、オブジェクトを指定された型と比較します。これを使用して、オブジェクトがクラスのインスタンス、サブクラスのインスタンス、または特定のインターフェイスを実装するクラスのインスタンスであるかどうかをテストできます。 参照

String [] abc=new String[]{"Joe","John"};
Object ob=abc;
...
if(ob instanceof String[]){
   String[] str = (String[])ob;
}else{...}
于 2013-01-25T06:33:27.110 に答える
0

最初のチェックは、次の配列です。

boolean isArray = ob.getClass().isArray();

また

if (ob instanceof Object[]) {

  // ...

}

java.util.Collectionチェックされていない場合は、instanceof とインターフェイスでチェックして、コレクションであるかどうかを確認します。

if (ob instanceof Collection) {

  // ...

}
于 2013-01-25T06:49:27.647 に答える
0

あなたの例から、チェックする必要があるのは、より正確には、コレクションではなくオブジェクト配列です。

次のようなものを試すことができます

String [] abc=new String[]{"Joe","John"}; 
Object ob=abc;
if (ob instanceof Object[]) {
  // do something
}
于 2013-01-25T06:38:46.927 に答える