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

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(我不确定是否可以解决该问题,只需从线程中读取它)或者告诉我其他解决方案。谢谢

Tag*_*eev 5

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)