Using twitter4j to fetch usernames that retweeted me I'm using using twitter4j to fetch usernames that retweeted me. I'm interested in any feedback that make the code more elegant, and also that might reduce the number of calls I'm making to the Twitter API.

import java.util.ArrayList;
import twitone.structure.BaseTwitterClass;
import twitone.structure.TwitApplicationFactory;
import twitter4j.Paging;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;

public class getmyretweeters extends BaseTwitterClass {

    public static void main(String[] args) throws TwitterException {

        Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();
        String temp[] = getRetweeters(twitter);
        for (String string : temp) {
            System.out.println(string);
        }
    }

    public static String[] getRetweeters(Twitter twitter) {
        ArrayList&lt;String&gt; names = new ArrayList&lt;String&gt;();
        try {
            for (Status status : twitter.getUserTimeline(new Paging(1, 200))) {
                System.out.println(status.getText());
                if (status.getRetweetCount() &gt; 0) {
                    Thread.sleep(12000);// Because I don't want to breach
                                        // Twitter's rate limits
                    for (Status rt : twitter.getRetweets(status.getId())) {
                        names.add(rt.getUser().getScreenName());
                    }
                }
            }
        } catch (TwitterException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return names.toArray(new String[names.size()]);
    }

}
General Notes


Follow Java naming conventions.  Class names should have EachWordCapitalized, and variable and method names should be inCamelCase.  Also, class names should be nouns, and method names should be verbs.
For collections, the overarching interface is usually used.  (i.e., List&lt;String&gt; names = new ArrayList&lt;String&gt;();)  Not really that important in my view, but it adds some style points according to some authorities.
Most of the int literals should be true constants.  So for example, you would have private static final long WAIT_TIME = 12000; at the top of your class, and then call Thread.sleep(WAIT_TIME).  It doesn't matter for this small application, but for large-scale projects this will allow you to change the setting globally just by modifying this one value.  Otherwise, you'll be doing a lot of digging through your code, and you're guaranteed to forget to change that one spot it mattered most.  Every.  Single.  Time.
Why are you bothering to convert the ArrayList&lt;String&gt; into a String[] before returning it?  You may as well just change the return type of the method to List&lt;String&gt;.  In general, it's best to avoid primitive arrays and use these data structures.  And they can also be used in the enhanced for loop in your main method.
You should hardly ever swallow Exceptions and do nothing about them.  Again, it's pretty trivial in this case and doesn't really matter, but if you're looking to develop good programming habits, start logging and doing safety checking and all that now.  It'll make your life a lot easier down the road.


Also, this method name made me die a little on the inside: getjoereddingtonTwitter()