使用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(我不确定那会解决那个问题只是从一个线程中读取它) 要么 告诉我其他解决方案。谢谢
答案 0 :(得分:3)
Guava Lists.newArrayList
只是创建标准JDK ArrayList
的简写,并用预定义的值填充它。您可以在没有使用Arrays.asList
的任何第三方库的情况下以更长的方式执行此操作:
endpoint.trackTerms(new ArrayList<>(Arrays.asList("twitterapi", "#AAPSweep")));
如果您不需要在创建的列表中进行结构更改,则更简单:
endpoint.trackTerms(Arrays.asList("twitterapi", "#AAPSweep"));