"unexpected token: int" twitter4j 程序错误
"unexpected token: int" error on twitter4j program
我正在使用 twitter4j 3.0.3、processing 2 和 el capitan。我在尝试 运行 这段代码时总是出错!特别是:unexpected token: int
行 return (int) statuses.stream()
我希望该标签数据根据#good 和#bad 推文的数量将背景颜色修改为介于红色和绿色之间的颜色。我喜欢将其视为 +100/-100 频谱。每个#good 推文都是+1,每个#bad 是-1。如果是 -100 条推文,则椭圆为全红色。如果是 +100 条推文,则背景为全绿色。
ConfigurationBuilder cb = new ConfigurationBuilder();
Twitter twitterInstance;
Query queryForTwitter;
//ArrayList tweets;
void setup() {
cb.setOAuthConsumerKey("xxxx");
cb.setOAuthConsumerSecret("xxxx");
cb.setOAuthAccessToken("xxxx");
cb.setOAuthAccessTokenSecret("xxxx");
cb.setUseSSL(true);
size(640,440);
} //setup
//ArrayList<String> tweets = new ArrayList<String>();
public static void main (String args[]) throws TwitterException {
Twitter twitter = new TwitterFactory().getInstance();
List<Status> statuses = twitter.getUserTimeline("google");
String hashtag = "#AlphaGo";
System.out.println("The Twitter page contains "
+ countTweets(hashtag, statuses)
+ " tweets with the hashtag : " + hashtag);
}
public static int countTweets(String hashtag, List<Status> statuses){
return (int) statuses.stream()
.filter(x -> x.getText().contains(hashtag))
.count();
}
//create a function that counts the tweets
//that contain a certain hashtag
int countTweets(String hashtag){
int total = 0;
for(String tweet : tweets){
if(tweet.contains(hashtag)){
total++;
}
}
return total;
}
void draw(){
//count the good and bad tweets
int goodTweets = countTweets("#good");
int badTweets = countTweets("#bad");
//calculate color based on tweet counts
float r = badTweets/100.0 * 255;
float g = goodTweets/100.0 * 255;
float b = 0;
background(r, g, b);
}
这里的代码有问题:
public static void main (String args[]) throws TwitterException {
Twitter twitter = new TwitterFactory().getInstance();
List<Status> statuses = twitter.getUserTimeline("google");
String hashtag = "#AlphaGo";
System.out.println("The Twitter page contains "
+ countTweets(hashtag, statuses)
+ " tweets with the hashtag : " + hashtag);
}
public static int countTweets(String hashtag, List<Status> statuses){
return (int) statuses.stream()
.filter(x -> x.getText().contains(hashtag))
.count();
}
你有几处错误:
首先,处理不支持Java8语法。这是Java8语法:
statuses.stream().filter(x -> x.getText().contains(hashtag)).count();
您必须重构它以使用基本的 for 循环,这在我在您的其他问题中给您的代码中。实际上你已经有一个使用它的函数,所以我不知道你为什么要添加这个 Java 8 函数。再一次,您永远不会声明您在该函数中使用的 tweets
变量。
其次,Processing 从不调用 main()
方法。 您必须摆脱该方法并将其任何代码移动到实际调用的函数中,例如setup()
函数。
第三,您没有任何导入语句。我假设您只是从 post 中省略了它们,但不要让我们猜测。以后,尝试 post 一个 MCVE 来代替 运行。
我正在使用 twitter4j 3.0.3、processing 2 和 el capitan。我在尝试 运行 这段代码时总是出错!特别是:unexpected token: int
行 return (int) statuses.stream()
我希望该标签数据根据#good 和#bad 推文的数量将背景颜色修改为介于红色和绿色之间的颜色。我喜欢将其视为 +100/-100 频谱。每个#good 推文都是+1,每个#bad 是-1。如果是 -100 条推文,则椭圆为全红色。如果是 +100 条推文,则背景为全绿色。
ConfigurationBuilder cb = new ConfigurationBuilder();
Twitter twitterInstance;
Query queryForTwitter;
//ArrayList tweets;
void setup() {
cb.setOAuthConsumerKey("xxxx");
cb.setOAuthConsumerSecret("xxxx");
cb.setOAuthAccessToken("xxxx");
cb.setOAuthAccessTokenSecret("xxxx");
cb.setUseSSL(true);
size(640,440);
} //setup
//ArrayList<String> tweets = new ArrayList<String>();
public static void main (String args[]) throws TwitterException {
Twitter twitter = new TwitterFactory().getInstance();
List<Status> statuses = twitter.getUserTimeline("google");
String hashtag = "#AlphaGo";
System.out.println("The Twitter page contains "
+ countTweets(hashtag, statuses)
+ " tweets with the hashtag : " + hashtag);
}
public static int countTweets(String hashtag, List<Status> statuses){
return (int) statuses.stream()
.filter(x -> x.getText().contains(hashtag))
.count();
}
//create a function that counts the tweets
//that contain a certain hashtag
int countTweets(String hashtag){
int total = 0;
for(String tweet : tweets){
if(tweet.contains(hashtag)){
total++;
}
}
return total;
}
void draw(){
//count the good and bad tweets
int goodTweets = countTweets("#good");
int badTweets = countTweets("#bad");
//calculate color based on tweet counts
float r = badTweets/100.0 * 255;
float g = goodTweets/100.0 * 255;
float b = 0;
background(r, g, b);
}
这里的代码有问题:
public static void main (String args[]) throws TwitterException {
Twitter twitter = new TwitterFactory().getInstance();
List<Status> statuses = twitter.getUserTimeline("google");
String hashtag = "#AlphaGo";
System.out.println("The Twitter page contains "
+ countTweets(hashtag, statuses)
+ " tweets with the hashtag : " + hashtag);
}
public static int countTweets(String hashtag, List<Status> statuses){
return (int) statuses.stream()
.filter(x -> x.getText().contains(hashtag))
.count();
}
你有几处错误:
首先,处理不支持Java8语法。这是Java8语法:
statuses.stream().filter(x -> x.getText().contains(hashtag)).count();
您必须重构它以使用基本的 for 循环,这在我在您的其他问题中给您的代码中。实际上你已经有一个使用它的函数,所以我不知道你为什么要添加这个 Java 8 函数。再一次,您永远不会声明您在该函数中使用的 tweets
变量。
其次,Processing 从不调用 main()
方法。 您必须摆脱该方法并将其任何代码移动到实际调用的函数中,例如setup()
函数。
第三,您没有任何导入语句。我假设您只是从 post 中省略了它们,但不要让我们猜测。以后,尝试 post 一个 MCVE 来代替 运行。