无法遍历数组

时间:2011-01-02 01:48:44

标签: java twitter-oauth

UserType statuses = twitter.getFriendsStatuses(UserType.class, null, null);
for( UserType  users :  statuses )
{
     out.println("<p>"+users.getName()+"</p>");
}

我收到错误“Foreach不适用于表达式类型”。


我的方法定义是:

public <T> T getFriendsStatuses(Class<T> responseType, String lite, String page) throws UniformInterfaceException {
        String[] queryParamNames = new String[]{"lite", "page"};
        String[] queryParamValues = new String[]{lite, page};
        return webResource.queryParams(getQueryOrFormParams(queryParamNames, queryParamValues)).accept(javax.ws.rs.core.MediaType.TEXT_XML).get(responseType);
    }

2 个答案:

答案 0 :(得分:4)

这是因为UserType没有实现Iterable<T>。因此,您无法使用增强的for foreach )循环来迭代它。


编辑:根据您提供的示例,我的野生guess是代码由Jersey生成。如果是这种情况,那么您应该使用Statuses.class而不是UserType.class。然后,您可以获得List StatusType,然后可以在for循环中使用List,因为Iterable实现了Statuses statuses = twitter.getFriendsStatuses(Statuses.class, null, null); for (StatusType statusType : statuses.getStatus()) { UserType userType = statusType.getUser(); System.out.println("<p>" + userType.getName() + "</p>"); }

{{1}}

但话又说回来,这只是一个疯狂的猜测。

答案 1 :(得分:0)

UserType是实现Collection还是Iterable?

您只能将每个应用于集合或数组(或实现Iterable的任何内容)。

http://leepoint.net/notes-java/flow/loops/foreach.html