- zephiransas
- 27881
- 21
- 23
- 9
Javaでメソッドの引数がOptional<Hoge>型のときでも、やっぱり引数のnullチェックいるよね…
2015-11-20 15:50:00@ngsw_taro 引数がOptionalだからnullは渡すなよーと呼び出し側に伝わるからでしょうか??
2015-11-20 15:56:06@jyukutyo 引数としてnullを期待しない仕様であると明示しているにも関わらずnullが渡ってきた(つまり事前条件が満たされていない)場合、メソッド使用者側に全責任があるからです
2015-11-20 15:59:54@jyukutyo そうです!逆にnullをOptional.empty()と同様に扱う場合はそれを明記しないと混乱の元になりそうです
2015-11-20 16:02:27Optionalを引数に取らない理由としてはこれもあるなぁ。 基本的にはmapを使いって、非決定性を副作用の発生する水際まで非決定性を持ったまま扱う場面でしか使ってない twitter.com/jyukutyo/statu…
2015-11-20 16:18:48@haljik 日本語がだいぶおかしい…。非決定性を持ったものを、非決定性を保持したまま変換したりして副作用の水際まで運ぶ用途って言いたかった
2015-11-20 16:39:35OracleでJava作ってる人のブログかなんかでも、戻り値で使うもんであって引数には使わんって書いてた覚えがあるんだけど、URLみつからん
2015-11-20 16:53:35って話を毎回「ぜんぶOptionalにしろ」っていう人と話をしなければならず、非常にめんどくさいので、Effective Javaあたりでドドンって書いて欲しいなーと。
2015-11-20 17:03:03@t_yano そういうことをJava SE 7/8 速攻入門に書きましたよ。 amazon.co.jp/dp/4774177385/
2015-11-20 17:08:46@t_yano これですねー。Brian Goetzさん自らのコメントですね。 mail.openjdk.java.net/pipermail/jdk8…
2015-11-20 17:11:01ちょっと恥ずかしく思いながらつぶやいた内容だったのだけれど、すごく知見が得られて、考えを教えてくださっているみなさんありがとうございます。 > 引数がOptional/Option
2015-11-20 17:14:00@zephiransas @jyukutyo 「Optionalは引数が空になる可能性を示唆するためのものであって、他の目的での利用は一切意図していない」とOracleの中の人が断言してます → stackoverflow.com/questions/2454…
2015-11-20 17:39:50It was never intended for Optional to be used other ways, such as for optional method arguments からは引数に使うな、って意味な気がする・・・
2015-11-20 17:48:20