-2

使用 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();

我试图从插件中删除 com.google.guava_15.0.0.v201403281430 文件,并尝试按照评论中的说明粘贴 Guava 旧版本,但我无法安装(指向)旧 guava 版本。这里也可能有这个问题的另一种解决方案,但我是 java 新手,不知道如何用另一个列表替换该列表。

请问有没有人可以使用其他 List 方法运行该代码?或者告诉我如何在 eclipse 中添加旧版本的番石榴(我不确定这是否会解决这个问题,只是从一个线程中读取它)或者告诉我其他解决方案。谢谢

4

1 回答 1

4

GuavaLists.newArrayList只是创建标准 JDKArrayList并用预定义值填充它的简写。您可以在不使用任何第三方库的情况下以更长的方式执行此操作Arrays.asList

endpoint.trackTerms(new ArrayList<>(Arrays.asList("twitterapi", "#AAPSweep")));

如果您不需要在创建的列表中进行结构更改,甚至更简单:

endpoint.trackTerms(Arrays.asList("twitterapi", "#AAPSweep"));
于 2015-09-14T12:09:33.377 回答