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);
}
答案 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的任何内容)。