2013-01-25 278 views
2

在Java中我想查找对象是否是对象集合?如何检查对象是否包含对象集合

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

我想检查varorable ob保存对象集合??我该怎么做?

+0

Adrian Shum是对的,abc不是一个集合,而是一个Array。尼斯概述:http://en.wikibooks.org/wiki/File:Java_collection_implementation.jpg – ratlan

回答

1

检查instanceof运营商。

instanceof运算符将对象与指定类型进行比较。您可以使用它来测试对象是否是类的实例,子类的实例或实现特定接口的类的实例。 reference

String [] abc=new String[]{"Joe","John"}; 
Object ob=abc; 
... 
if(ob instanceof String[]){ 
    String[] str = (String[])ob; 
}else{...} 
+0

如何将“ob”转换为String集合(即与我们分配的相同) – vmb

+0

'(String [])ob;' –

+0

ok。我会测试 – vmb

2

您可以使用Java反射,就像这样:

Class<?> clazz = ob.getClass(); 
boolean isArray = clazz.isArray(); 
0

从你的榜样,您需要检查什么是更准确地说,对象数组,而不是收藏。

你可以尝试像

String [] abc=new String[]{"Joe","John"}; 
Object ob=abc; 
if (ob instanceof Object[]) { 
    // do something 
} 
0

首先检查它的数组:

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

if (ob instanceof Object[]) { 

    // ... 

} 

如果不检查是一个集用的instanceof检查和java.util.Collection接口:

if (ob instanceof Collection) { 

    // ... 

} 
相关问题