MessagePack の Java 版を Scala から使ってみた。
なんでこんなことをしたかというと
MessagePack for Scala は現状 Scala 2.10 には対応していないらしく
(java.lang.NoClassDefFoundError: scala/reflect/ClassManifestエラーが発生する)、
2.10 対応版フォークを使用する、
自分で公式リポジトリから clone してワークアラウンドコードを入れてみる、
など対応方法はあると思うけど、
MessagePack for Java を使ってみるとどんな感じになるかを試してみた。
今回は JSON ⇔ MessagePack の変換。
本エントリは Scala で ATND API を叩くScala で partition 関数を使用してリストの要素を振り分けるの続きです。

さて、ここまでくるともうひとつの ListBuffer 使用箇所も不変リストにしたい。したほうがいいはずだ、多分。
残った ListBuffer 使用箇所は、「"keyword=aaa,bbb", "ym=201207", "ymd=20120723"」といった要素を持つリストを用意して
mkString("&") で「"keyword=aaa,bbb&ym=201207&ymd=20120723"」といった文字列を作っている。
(話はそれるけど、要素の区切り文字や接頭辞・接尾辞をつけた文字列を作れる mkString って便利)
前回のエントリで、複数の引数を受け取って、数値6個ならymパラメータ、数値8個ならymdパラメータ、
それ以外ならkeywordパラメータとして検索条件に指定するために
可変リストをあらかじめ3つ用意してパターンマッチで各要素をそれぞれのリストに追加していくようにしていたが、
partition という関数(TraversableLike トレイトのメソッドというのが正しいのかな?)を使うと
上手く振り分けられそうだったのでやってみた。

Copyright© 2011-2021 Shunsuke Otani All Right Reserved .