2011-01-02 20 views
1
UserType statuses = twitter.getFriendsStatuses(UserType.class, null, null); 
for(UserType users : statuses) 
{ 
    out.println("<p>"+users.getName()+"</p>"); 
} 

「Foreachは式の型には適用されません」というエラーが発生します。配列内を反復できません


私のメソッドの定義はこれです:

UserTypeIterable<T>を実装していないためである
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

コードに誤字がありますか? 'statuses'は配列ではありません。 –

答えて

4

。したがって、拡張されたforforeach)ループを反復処理することはできません。


EDIT:あなたが提供した例を考えると、私の野生guessコードはジャージーによって生成されたことです。その場合はUserType.classの代わりにStatuses.classを使用する必要があります。次にListStatusTypeを取得し、がIterableを実装しているので、forループで使用できます。

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

しかし、ここでもやはり野生のものです。

+0

これは私が得るものです:予期せぬ要素(uri: ""、local: "users")。予想される要素は<{}statuses>です。ステータスはこれを返します。public list getStatus(){ if(status == null){ status = new ArrayList (); } return this.status; } – thikonom

関連する問題