使用twitter4j做一些java dev,并且好奇地知道我什么时候打电话给
Status tweet = blah blah blah.
long tweetID = tweet.getId(); //Is this unique?
我设置了一个HashSet,以便跟踪我已收到的推文,并且我有一份重复的打印声明。我的印象是Twitter使用64位长的时间来生成唯一的密钥,但我无法找到twitter4j tweet id和Twitter的推文ID之间的任何关联。主要问题是:twitter4j状态推文ID是否唯一?
[编辑] 一些详细说明,我有一个Longs的HashSet
HashSet<Long> usedIds = new HashSet<Long>();
//Get new twitter4j Status
if(!usedIds.contains(tweetID)) {
//this is not a duplicate
//Place id into set
usedIds.add(tweetID);
//do work
} else {
//This is duplicate and my program is printing stuff
//From what I've learned this condition should never be met but it is
}
答案 0 :(得分:2)
我很确定twitter4j的Status.getId()
会返回推文的唯一ID,由Twitter决定。它不是创建自己的ID。也许你的HashSet对密钥空间过于激进并且你正在发生冲突,但是getId
调用会给你Tweet的实际ID。