Twitter REST API を用いてフォロワーの一覧を得る

//package twitter.misc;

/*
** Twitter REST API の statuses/followers メソッドを利用して,
** 指定したユーザのフォロワーを収集する.
**
** [statuses/followers の説明ページ]
** http://apiwiki.twitter.com/w/page/22554748/Twitter-REST-API-Method:-statuses%C2%A0followers
**
** [変更履歴]
** 2011.04.18 とりあえず動くバージョンを作成.
*/
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.*;
import java.util.List;
import java.util.ArrayList;
import org.json.*;

public class Followers {
  static List < String > m_FollowerList = new ArrayList < String > ();

  static String getFollowers (String username, String cursor) {
    String next_cursor = "";

    try {
      String urlString =
        "http://api.twitter.com/1/statuses/followers/" + username +
        ".json?cursor=" + cursor;
      URL url = new URL (urlString);
      HttpURLConnection connection =
        (HttpURLConnection) url.openConnection ();

      // レスポンスコード
      //System.err.printf("%d %s\n", connection.getResponseCode(), connection.getResponseMessage());

      // レスポンス == HTTP_OK ならば,
      // JSON データからフォロワーのスクリーン名を取得する
      if (connection.getResponseCode () == HttpURLConnection.HTTP_OK) {
        BufferedReader br =
          new BufferedReader (new
                              InputStreamReader (connection.
                                                 getInputStream (),
                                                 "UTF-8"));
        String line = br.readLine ();
        //System.err.println(line); //デバッグ用

        try {
          JSONObject json = new JSONObject (line);
          JSONArray followers = json.getJSONArray ("users");

          // next_cursor の値を long で取れないため,
          // next_cursor_str を参照する.
          next_cursor = json.getString ("next_cursor_str");
          for (int i = 0; i < followers.length (); i++) {
            JSONObject follower = (JSONObject) followers.get (i);
            String user = follower.getString ("screen_name");
            m_FollowerList.add (user);	//リストへ追加
            //System.err.println(user); //デバッグ用
          }
        } catch (JSONException e) {
          System.err.println (e);
        }
      }
    } catch (Exception e) {
      e.printStackTrace ();
    }

    return next_cursor;
  }

  public static void main (String[]args) {
    String username = "スクリーンネーム";
    String cursor = "-1";
    do {
      cursor = getFollowers (username, cursor);
    } while (cursor.equals ("0") == false);

    System.out.println ("# of followers : " + m_FollowerList.size ());
    for (int i = 0; i < m_FollowerList.size (); i++) {
      System.out.println (m_FollowerList.get (i));
    }
  }
}