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]

私の懸念は、必要な要素だけを取得する方法ですか? (つまり、「名前」と「ID」)

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と名前だけが欲しいので。したがって、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 に答える