#Twitter4J 4.0.4 リリース – 長文DMサポート、Lambda表記サポートなど

Twitter4J 4.0.4をリリースしました。Maven central repositoryTwitter4J.orgのスナップショットリポジトリよりお使い頂けます。

マイグレーション

ごく一部、バイナリの非互換性があるため、バージョン4.0.4へ移行する際はプロジェクトを再ビルドしてください。

長文DMのサポート

Twitterは7月より140文字を超えるDMを送受信できるようになります。Twitter4J 4.0.4以降を使えばコードの変更なく長文DMを受け取るようになります。
twitter community.com: Removing the 140 character limit from Direct Messages

Lambda表記のサポート

Twitter4JがついにLambda表記をサポートしました。onStatus(Consumer)とonException(Consumer)を使うことでストリーミングAPIのリスナアクションをLambda表記で実装できます。
これは、Twitter4J固有のファンクショナルインターフェースを導入することで実現しており、Twitter4Jを引き続きJava6(Maven central repositoryバージョン)並びにJava5(twitter4j.orgバージョン)と互換性があります。

様々な箇所での可変長引数サポート

Twitter4Jは様々な箇所で可変長引数を受け取れるようになりました。スクリーン名や、フィルタリングの単語を指定するのに面倒なnew String[]{}を書く必要がなくなります。

ラムダ表記と可変長引数により、コードがいかにシンプルになるか、以下の例をご覧ください:
twitter4j/examples/lambda/TwitterStreamLambda.java

SavedSearch idタイプの移行

SavedSearchのidを保存するのにintは足りなくなりました。SavedSearch#getId()はlongを返すようになりました。SavedSearchの直列化形式は過去のリリースと互換性がありませんのでご注意ください。

#Twitter4J 4.0.4 released – supports longer DM texts, lambda expression and more

We have just release Twitter4J 4.0.4. The build is available at the Maven central repository and Twitter4J.org’s snapshot repository.

Migration

We have made some slight changes that could introduce binary compatibility, and it is encouraged to REBUILD your project when migrating to version 4.0.4.

Support for longer DM texts

Twitter will be allowing users to send and receive 140+ DMs in July. Projects using Twitter4J 4.0.4+ will receive longer DM text without any code change.
twitter community.com: Removing the 140 character limit from Direct Messages

Support for lambda expression

Twitter4J is finally lambda ready. You can implement streaming API’s listener actions in lambda expression using onStatus(Consumer) and onException(Consumer).
This is done by introducing Twitter4J specific functional interface, and Twitter4J will be continued to be compatible with Java 6+.

Support for variable arguments in many places

Twitter4J now accepts variable arguments in many places. It is no longer required to put new String[]{} when passing list of screen names, filtering terms.

Please take a few seconds to see how lambda and varargs will simplify Twitter4J’s client code:
twitter4j/examples/lambda/TwitterStreamLambda.java

SavedSearch id type migration

int is no more sufficient to handle SavedSearch’s id. The return type of SavedSearch#getId() is now long. Note that serialized objects of this class is not compatible with previous releases.