2016-03-14 35 views
0

我想在Java中開發音樂播放器。我需要提供曲目信息提供曲目標題,專輯標題和藝術家的名字。 我的代碼如下類型gracenote java api

results = api.searchTrack("The Final Countdown", "The Final Countdown", "Europe"); 
System.out.println(results.getAlbumData(0, "genre").toString()); 

我所得到的輸出是

[[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected], 
[email protected],  
[email protected], 
[email protected], 
[email protected]] 

請你幫我這個,什麼是這些結果意味着

+0

可能的結果會返回一些集合,並且您可能需要遍歷集合調用更具體的getter方法,而不是toString來查看所獲得的結果。你已經爲你的圖書館獲得了API(希望),並且你需要研究它以查看需要調用的內容。 –

回答

0
 GracenoteMetadata results = null; 
     Map myMap = results.getAlbum(0); 
     System.out.println("Number of entries in result = " + myMap.size()); 
     String key = "genre"; 
     ArrayList obj = (ArrayList) myMap.get(key); 
     for (Object object : obj) { 
      GracenoteMetadataOET abc = (GracenoteMetadataOET)object; 
      System.out.println(abc.getText()); 
     } 

getAlbum(INDEX)的返回類型是一個Map。我們所要做的就是使用get(key)函數從映射中獲取ArrayList,將每個對象轉換爲GracenoteMetadataOET對象(此處爲abc),然後使用GracenoteMetadataOET類的getText()方法檢索值。

0

你找回一個數組或從你的方法列表,你只是打印它,問題是,Java打印陣列不是由toString方法,但由Hashcode它ele所以你看到的不是你的albumdata請求的人類可讀表示。

你可以做的是(如果你知道的方法回饋):

for(<Your_Data> d: results.getAlbumData(0, "genre")){ 
    System.out.println(d.toString()); 
} 

我建議你看一看API的文檔和驗證你想說什麼,當你調用該方法。