3

我有以下几行 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]

我关心的是如何只获得想要的元素?(即:“姓名”和“身份证”)

4

3 回答 3

9

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

假设数组结果的每个元素都可以类型转换为 TestProject 类。你可以按照这个方法:

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 +"]"; 
}
于 2013-01-10T06:58:53.407 回答
2

因为你只想要 id 和 name。因此,id 位于 index[0] 处,name 位于 index[1] 处。因此代码将是这样的。

   Object[] results = api.getProjects();
   System.out.println(results[0]);
   System.out.println(results[1]);
于 2017-03-08T11:26:17.380 回答
0

Object[] results是一个糟糕的选择。

单个元素看起来要么是类要么是 HashMap

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

Result[] results = api.getProjects()

result[i].name
result[i].id
于 2013-01-10T06:57:01.550 回答