2016-03-14 29 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的文档和验证你想说什么,当你调用该方法。