如何从Java中的Object []获取元素?

时间:2013-01-10 06:53:51

标签: java arrays parsing

我有以下几行Java代码:

Object[] results = api.getProjects();
   for(int i=0; i<results.length; i++){
       System.out.println(results[i].toString());
   }

这是输出:

TestProject [id=1, name=Test Plan, prefix=MA, notes=, enableRequirements=true, enableTestPriority=true, enableAutomation=true, enableInventory=true, isActive=true, isPublic=true]

我担心的是我如何才能获得想要的元素? (即:“name”和“id”)

3 个答案:

答案 0 :(得分:8)

您应该对每个对象进行类型转换并打印所需的内容。

假设数组结果的每个元素都可以被类型化为TestProject类。你可以关注这个apporach:

Object[] results = api.getProjects();
for(TestProject tp : results){    
   System.out.println(tp.getName + " " + tp.getId());
 }

或者

 Object[] results = api.getProjects();
    for(Object tp : results){    
       String name = ((TestProject)tp).getName() ;
       String id = ((TestProject)tp).getId() ;
       System.out.println(name);
       System.out.println(id);
     }

如果您将toString()重写为

,那么您现有的实现也会有效
@Override
public String toString(){
   return "TestProject [id=" + id + ", name=" + name +"]"; 
}

答案 1 :(得分:1)

Object[] results对此不是一个好选择。

单个元素看起来是类或HashMaps

假设前者,你可以做这样的事情

Result[] results = api.getProjects()

result[i].name
result[i].id

答案 2 :(得分:1)

因为你只想要id和名字。因此,id位于索引[0],name位于索引[1]。因此代码就是这样。

   Object[] results = api.getProjects();
   System.out.println(results[0]);
   System.out.println(results[1]);