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

时间:2015-09-14 11:56:25

标签: java twitter arraylist guava twitter-hbc

使用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文件并尝试按照here in a comment粘贴Guava旧版本,但我无法安装(指向)旧番石榴版本。 此问题还有另一种解决方案here,但我是java的新手,不知道如何用其他的替换该List。

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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