2014-12-07 109 views
0
public static void main(String[] args) { 
    args[0] = "derp"; 
    args[1] = "herp"; 
    args[2] = "lerp";  

    if (args.length < 1) { 
     System.out.println("what?"); 
     System.exit(-1); 
    }Twitter twitter = new TwitterFactory().getInstance(); 
    try { 
     Query query = new Query(args[0]); 
     QueryResult result; 
     do { 
      result = twitter.search(query); 
      List<Status> tweets = result.getTweets(); 
      for (Status tweet : tweets) { 
       System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText()); 
      } 
     } while ((query = result.nextQuery()) != null); 
     System.exit(0); 
    } catch (TwitterException te) { 
     te.printStackTrace(); 
     System.out.println("Failed to search tweets: " + te.getMessage()); 
     System.exit(-1); 
    } 

我得到這個錯誤,我不知道爲什麼..Java錯誤:java.lang.ArrayIndexOutOfBoundsException:0

異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:0 在twitter4j.examples。 search.SearchTweets.main(SearchTweets.java:34)

+0

你是否傳入了任何參數? – Reimeus 2014-12-07 22:55:18

+0

所以大概你沒有提供任何命令行參數,所以'args'的長度爲0 ...你不能將值存儲在不存在的數組元素中。 – 2014-12-07 22:55:28

回答

1

因爲String[]參數設置在您的程序執行中,並且您沒有傳遞任何命令行參數。由於看起來你想用3個編譯時間常量替換它們,所以你可以初始化爲args就像

args = new String[3]; 
args[0] = "derp"; 
args[1] = "herp"; 
args[2] = "lerp"; 
+0

我得到的第一種方法:數組常量只能用於初始值設定項,但第二種方式正常工作,謝謝 – user4335407 2014-12-07 23:00:10

+0

@ user4335407編輯。抱歉。樂意效勞。 – 2014-12-07 23:01:10

相關問題