jodatimeのコンストラクタをScalaから呼べないとおもったら、単に自分の勘違いだった件

yasushiaさんありがとうございますm(_ _)m
1
Kenji Yoshida @xuwei_k

朝早く来て、しかしオフィスは暑かったので、食堂(?)でblog書くライフハック(´・ω・)つ http://t.co/OJiy2c9 joda timeのDateTimeのコンストラクタがScalaと相性悪い件( Tuple がががが ) #scala

2011-06-22 10:15:28
Kenji Yoshida @xuwei_k

Object型を引数にとらなければ(Tupleは渡せないから)いいはず。しかもコンストラクタだから名前で指定できないし(´・ω・`) RT @naka_aki_spl ええとつまり、引数の型がユルすぎるJavaメソッドは、これを呼ぶのを難儀するっていう理解でいいのかな>Scala

2011-06-22 10:51:19
Yasushi Abe @yasushia

http://bit.ly/jbZvni 直接使うよりscalatimeつかったほうがいいのかも

2011-06-22 10:53:41
Kenji Yoshida @xuwei_k

@yasushia いや使ってたんですが、scalatimeにそれぞれのコンストラクタに対応したものがなさそうだったから、(pimp my libraryパターンで+や-のメソッド増やしたRich系のwrapperだけ?) 直で呼ぶしかないのかなぁと

2011-06-22 11:02:38
Kenji Yoshida @xuwei_k

いや、自分がちゃんと調べてないだけでscalatimeにあるのか・・・?scalatimeの使い方もちゃんとわかってない。とりあえず、 http://t.co/SDyrVY8 RichDateTimeみたら、直で作成するものはなかったん(´・ω・`)

2011-06-22 11:04:43
Kenji Yoshida @xuwei_k

"The Java Date and Calendar libraries are largely inadequate. They are mutable, not thread-safe, and very inconvenient to use. " っていうdisイイネ

2011-06-22 11:07:06
Kenji Yoshida @xuwei_k

まぁむだなインスタンス生成されること気にしなければ、scalatimeつかえばそこまで冗長にはならなそうだけど、なんかちょっと気持ち悪い(´・ω・`)

2011-06-22 11:08:59
Yasushi Abe @yasushia

@xuwei_k あ、そうでしたか。ちょっと見てみます。

2011-06-22 11:09:58
Kenji Yoshida @xuwei_k

ほかにもこういうのがない? http://t.co/aINK15P とか、scalatimeのラップが薄すぎる気がする。まぁforkしてもっといいやつ作れっていう話ですが。しかしそんなことやってる人がいなそうだから、ちゃんと使い方わかっていれば、これで十分に便利に使えるのか?

2011-06-22 11:17:04
Kenji Yoshida @xuwei_k

jodaとかscalatimeをどう使うべきか?とは別問題として、Object型のコンストラクタがある場合に、Tupleを渡していると解釈されてしまう問題に一般的な解決方法があるのかないのかを知りたいというのも、blog書いた意図 http://t.co/OJiy2c9

2011-06-22 11:20:04
Kenji Yoshida @xuwei_k

結局気になっちゃって、自分でjoda timeのソースを読んじゃう感じ(´・ω・`)

2011-06-22 11:24:51
Yasushi Abe @yasushia

DateTime.now.withTime...みたいな使い方しかしてなかった。

2011-06-22 11:25:42
Yasushi Abe @yasushia

http://bit.ly/jMhFns そしてこれをかすかに覚えていた。 (2010, 12, 13).toJodaDateMidnight

2011-06-22 11:26:52
Kenji Yoshida @xuwei_k

getInstantConverter呼ばれてて、そいつはConverterSet保持してて、そのSetの内容は事前に保持されてて、それらが、hashCodeとかclassクラスとか、class名を取得してそれらで判断とかしてゴニョゴニョ

2011-06-22 11:27:59
Yasushi Abe @yasushia

@xuwei_k http://bit.ly/lwa9fo これを見ると普通にDateTimeのコンストラクタ呼んでますね。Objectなコンストラクタは最近ついたのかな。

2011-06-22 11:28:57
Yasushi Abe @yasushia

あ、このcommitまだマージされとらんかったのか

2011-06-22 11:30:49
Kenji Yoshida @xuwei_k

おぉforkしてTupleから生成できるようにしてる人がいるのか・・・ということは、オリジナルのscalatimeではこういうことできないってことか・・・?

2011-06-22 11:31:26
Kenji Yoshida @xuwei_k

@yasushia それともTupleとして認識されてしまう現象が、REPL特有ってことですかね?

2011-06-22 11:34:05
Kenji Yoshida @xuwei_k

まぁこうなったら気が済むまで調べるか(´・ω・`)

2011-06-22 11:34:56
Kenji Yoshida @xuwei_k

ConvertSetとかその辺のつくりが、いかにもオブジェクト指向でなんか単にコード追う立場からすると、ちょっとあれ(´・ω・`)

2011-06-22 11:38:57
Kenji Yoshida @xuwei_k

mergeされてないというか、そもそもpull request送ってるのか?まだ全然その辺の文化とgithubの使い方と色々わかってない(´・ω・`)

2011-06-22 11:41:25
Kenji Yoshida @xuwei_k

jodatime の正式リリース(?)は1.6.2で 2010-09-14 だけど、ソースはgithubにあって、意外と頻繁に更新されてる・・・? http://t.co/jEqBB5H

2011-06-22 11:44:18
Yasushi Abe @yasushia

あれ? new DateTime(2011,6,22,10,5)はsbt runでもPredefでエラーになるけどnew DateTime(2011,6,22,10,5,0,0)はきちんと動く。なんでだろ。

2011-06-22 11:44:27
Yasushi Abe @yasushia

んー、Tuple5はObjectにされてしまうのに、Tuple7はObjectにならないのはなんでだろう。バグっぽい?

2011-06-22 11:53:39