Twitter4j NumberFormatException

Twitter4j NumberFormatException

我在他们的 Github 存储库中使用了一些 Twitter4j 示例,但是每当我尝试使用任何用户名时,例如获取最后一条推文,使用:

Twitter twitter = new TwitterFactory().getInstance();
Status status = twitter.showStatus(Long.parseLong("userName"));

它给我以下错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "userName"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:589)
    at java.lang.Long.parseLong(Long.java:631)

显然还有其他方法可以完成相同的任务,但我想知道是否有人有解决此问题的方法。我也在使用 'org.twitter4j:twitter4j-core:4.0.2'.

Long.parseLong("userName") 是问题所在。您正在尝试将字符串 "userName" 解析为 Long 值,这将不起作用。

我认为您正在寻找... User.getID() 检查以下 link:

http://twitter4j.org/oldjavadocs/4.0.2/index.html

有关更多示例,请参阅:http://twitter4j.org/en/code-examples.html

正如乔伊指出的那样 Long.parseLong("userName") 是问题所在。
如果您使用 twitter.showStatus(an id) 您需要推文的 ID,而不是用户名。如果你想要用户的最后一条推文,你需要这样做:

Twitter twitter = new TwitterFactory().getInstance();
User user = twitter.showUser(username); //username could be an String or a Long with the id of the user
Status status = user.getStatus();

就是这样