1

Twitter 发布了一个 Java 客户端库,并包含以下使用它的示例代码:

// Connect to the filter endpoint, tracking the term "twitterapi"
Hosts host = new BasicHost(Constants.STREAM_HOST);
StreamingEndpoint endpoint = new StatusesFilterEndpoint();
endpoint.trackTerms(Lists.newArrayList("twitterapi"));

// Drop in the oauth credentials for your app, available on dev.twitter.com
Authentication auth = new OAuth1("consumerKey", "consumerSecret", 
                             "token", "tokenSecret");

// Initialize a queue to collect messages from the stream
BlockingQueue<String> messages = new LinkedBlockingQueue<String>(100000);

// Build a client and read messages until the connection closes.
ClientBuilder builder = new ClientBuilder()
    .name("FooBarBaz-StreamingClient")
    .hosts(host)
    .authentication(auth)
    .endpoint(endpoint)
    .processor(new StringDelimitedProcessor(messages));
Client client = builder.build;
client.connect();

while (!client.isDone()) {
  String message = messages.take();
  // Do something with message
}

发布公告: https ://dev.twitter.com/blog/the-hosebird-client-streaming-library

尖括号是什么意思?

4

2 回答 2

3

BlockingQueue<String>Collection的超级接口之一。这意味着它实现了的功能,java.util.Collection它使您可以使用泛型并使集合cast-save!使用通用:

BlockingQueue<String>

您只能在 BlockingQueue 中使用 String。尝试添加另一个值,您的 IDE 会通知您不匹配的情况。这是一个很大的好处,因为检查不是在应用程序运行时完成的。

于 2013-03-01T09:58:35.397 回答
0

这意味着它messages是一个LinkedBlockingQueue适用于类型对象的实例String。另一个例子参见 java 的 HashMap,关于 java 中泛型的简要介绍参见wikipedia 。

于 2013-03-01T09:59:38.200 回答