访问Java对象中的列表

时间:2015-04-15 02:30:15

标签: java list

我一直试图在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();

谢谢你的阅读!

2 个答案:

答案 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();

然后你可以使用每个。