Sam*_*ash -2 java twitter arraylist guava twitter-hbc
使用 Eclipse Luna 我试图运行一个导入已弃用的 google-collections 的 java 代码,该代码在使用最新的 Guava 版本编译时抛出异常。
public static void run(String consumerKey, String consumerSecret, String token, String secret) throws InterruptedException
{
BlockingQueue<String> queue = new LinkedBlockingQueue<String>(10000);
StatusesFilterEndpoint endpoint = new StatusesFilterEndpoint();
endpoint.trackTerms(Lists.newArrayList("twitterapi", "#AAPSweep"));
Authentication auth = new OAuth1(consumerKey, consumerSecret, token, secret);
Client client = new ClientBuilder()
.hosts(Constants.STREAM_HOST)
.endpoint(endpoint)
.authentication(auth)
.processor(new StringDelimitedProcessor(queue))
.build();
client.connect();
Run Code Online (Sandbox Code Playgroud)
我尝试从插件中删除 com.google.guava_15.0.0.v201403281430 文件,并尝试粘贴 Guava 旧版本,如评论中所述所述,但我无法安装(指向)旧的 guava 版本。另外,这里可能还有另一种解决此问题的解决方案,但我是 java 新手,不知道如何用其他列表替换该列表。
请问有没有人可以使用其他 List 方法运行该代码?或者告诉我如何在 eclipse 中添加旧版本的 Guava(我不确定是否可以解决该问题,只需从线程中读取它)或者告诉我其他解决方案。谢谢
Guava只是创建标准 JDK并用预定义值填充它的Lists.newArrayList简写。ArrayList您可以使用更长的方式来完成此操作,而无需使用任何第三方库Arrays.asList:
endpoint.trackTerms(new ArrayList<>(Arrays.asList("twitterapi", "#AAPSweep")));
Run Code Online (Sandbox Code Playgroud)
或者,如果您不需要创建的列表中的结构更改,则更简单:
endpoint.trackTerms(Arrays.asList("twitterapi", "#AAPSweep"));
Run Code Online (Sandbox Code Playgroud)