2

在Java中我想知道对象是否是一个对象集合??

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

我想检查变量 ob 持有对象集合?我该怎么做?

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

从您的示例中,您需要更准确地检查对象数组而不是集合。

你可以尝试类似的东西

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

首先检查它是否是一个数组:

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

或者

if (ob instanceof Object[]) {

  // ...

}

如果不通过检查 instanceof 和java.util.Collection接口检查它是不是一个集合:

if (ob instanceof Collection) {

  // ...

}
于 2013-01-25T06:49:27.647 回答