1
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);
    }
4

2 に答える 2

4

UserType実装していないからIterable<T>です。forしたがって、拡張( foreach ) ループを使用して反復することはできません。


編集:あなたが提供した例を考えると、コードはJerseyによって生成されたというのが私の推測です。その場合は、のStatuses.class代わりに使用する必要がありUserType.classます。次に、Listofを取得できます。これをループでStatusType使用できます。forListIterable

Statuses statuses = twitter.getFriendsStatuses(Statuses.class, null, null); 
for (StatusType statusType : statuses.getStatus()) {
  UserType userType = statusType.getUser();
  System.out.println("<p>" + userType.getName() + "</p>");
}

しかし、繰り返しになりますが、それはただの推測です。

于 2011-01-02T01:50:38.787 に答える
0

UserType は Collection または Iterable を実装していますか?

コレクションまたは配列 (または Iterable を実装するもの) にのみ for each を適用できます。

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

于 2011-01-02T01:50:58.153 に答える