Java错误:java.lang.ArrayIndexOutOfBoundsException: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

因为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