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)
答
因为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
你是否传入了任何参数? – Reimeus 2014-12-07 22:55:18
所以大概你没有提供任何命令行参数,所以'args'的长度为0 ...你不能将值存储在不存在的数组元素中。 – 2014-12-07 22:55:28