我一直试图在1小时30分之间弄清楚这个问题,这对于看似非常简单的问题来说太混乱了所以我来这里问。
我向第三方API发送获取请求,以获取动画(电影)详细信息为xml。 我将它们存储在Ann.java类中,该类是由来自示例xml响应的netbean的JAXB xml绑定自动生成的。
最初我使用的xml文件只返回一个动画条目,所以我可以使用
String output = gt.fetchMovie().getAnime().getName();
其中gt是我的网络服务。这会将动画的名称打印到我的IDE中。
我更改了设置,以便第三方API响应为我提供了多个动画结果,而不仅仅是一个。我现在搜索“福音战士”并得到3个结果。
但是,xml和java类的新模式意味着属性存储为列表。例如。如果我想访问动漫的getName,它就在这个结构中:
public class Ann {
protected List<Object> animeOrManga;
public List<Object> getAnimeOrManga() {
if (animeOrManga == null) {
animeOrManga = new ArrayList<Object>();
}
return this.animeOrManga;
}
public String getName() {
return name;
}
我一直试图弄清楚如何返回getName但找不到任何解释我想要做的事情。我不够聪明,只是“搞清楚”并且已经进行了1小时30的试验和错误。
我知道我想做这样的事情,但猜测语法是不可能的,一切都变红了,或者找不到符号,或者其他什么。
List<Object> = gt.fetchMovie().getAnimeOrManga();
For each (list object)
getName();
谢谢你的阅读!
答案 0 :(得分:0)
您提供的伪编码可以用Java编写,如下所示:
List<Ann> list = new ArrayList<Ann> // You want the list as specific as possible
list.clone(gt.getAnimeOrManga());
for(Ann listObject : list) { // For each loop
listObject.getName();
}
使用的是for-each循环,这正是声音:对于此列表中的每个东西都这样做。
clone()方法接受一个arraylist并将其复制到新的arraylist中。 见这里:How do I copy the contents of one ArrayList into another?
答案 1 :(得分:0)
如何创建具有类似
等名称属性的类public class Animal {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后您可以使用
List<Animal> animeOrManga = gt.fetchMovie().getAnimeOrManga();
然后你可以使用每个。