我有以下几行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”)
答案 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]);