将 google-collect Lists.newArrayList() 替换为其他列表

Replace google-collect Lists.newArrayList() with other List

使用 Eclipse Luna 我正在尝试 运行 一个 java 代码,该代码导入已弃用的 google-collections,当使用最新的 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 旧版本 here in a comment 但我无法安装(点) 对旧番石榴版本。 此问题可能还有另一种解决方案 here 但我是 java 的新手,不知道如何用其他列表替换该列表。

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

Guava Lists.newArrayList 只是创建标准 JDK ArrayList 并用预定义值填充它的简写。您可以使用 Arrays.asList:

在没有任何第三方库的情况下以更长的方式执行此操作
endpoint.trackTerms(new ArrayList<>(Arrays.asList("twitterapi", "#AAPSweep")));

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

endpoint.trackTerms(Arrays.asList("twitterapi", "#AAPSweep"));