【发布时间】:2016-12-15 23:46:45
【问题描述】:
我正在构建一个应用程序来提取推文,包括可能在每种情况下使用或不使用的不同过滤器(位置、语言、轨道)。我使用了一个 FilterQuery 和几个 TwitterStreamingListener。 基本上,我构建了一个包含每个听众要求的查询,然后我从 twitter 流中收集推文。
twitterStream.filter(query);
除了没有听众包含位置要求的情况外,它工作正常。然后,位置字段不被使用并保持为空:
FilterQuery{count=0, follow=null, track=[party,night,house], locations=[null], language=[en]}
当其他字段保持为空时没有问题,但在这种情况下,我收到此错误:
Exception in thread "Twitter Stream consumer-18[Establishing connection]" java.lang.NullPointerException
ERROR [stderr] (Twitter Stream consumer-18[Establishing connection]) at twitter4j.FilterQuery.toLocationsString(FilterQuery.java:200)
ERROR [stderr] (Twitter Stream consumer-18[Establishing connection]) at twitter4j.FilterQuery.asHttpParameterArray(FilterQuery.java:182)
ERROR [stderr] (Twitter Stream consumer-18[Establishing connection]) at twitter4j.TwitterStreamImpl.getFilterStream(TwitterStreamImpl.java:306)
ERROR [stderr] (Twitter Stream consumer-18[Establishing connection]) at twitter4j.TwitterStreamImpl$7.getStream(TwitterStreamImpl.java:287)
ERROR [stderr] (Twitter Stream consumer-18[Establishing connection]) at twitter4j.TwitterStreamImpl$TwitterStreamConsumer.run(TwitterStreamImpl.java:488)
我是否应该始终在我的 FilterQuery 中包含位置信息?或者是否可以使用任何其他表示不需要位置的表达式(而不是 null)?
【问题讨论】: