Java8のOptionalが個人的に手ごわい件

昨夜から今日にかけてをまとめてみました。
1
リンク http://java-tto-kaiketsu.hatenablog.jp/ Optionalの応用① - Javaっと解決! 概要 OptionalクラスはNULL値があり得るということを明示的に示すために使用する。そのための便利なメソッドが揃っている。Optionalクラスを使うとnull値を判定するような箇所で一工夫できる。例えば次の処理のtitleValueという変数は冗長で他に使い道がない。つまりこの変数はスコープを汚染している。これを省きたい。 String titleValue = title.orElseGet(() -> { Title annotation = controller.getClass().get
tksy(吉村 武志) @takesi_yosimura

@itoKami1123 例の関数の本読んでても途中でOptional出てきて、Optional素敵!って感じありましたねぇ。

2015-03-31 23:35:46
いとかむ @ito_kamu

@takesi_yosimura ですね!調度私も例のJavaによる関数本読んでるとこです〜。

2015-03-31 23:45:31
うらがみ⛄ @backpaper0

title.map(Optional::of).orElseGet(() -> Optional.ofNullable(controller.getClass().getAnnotation(Title.class).map(a -> a.value())).

2015-03-31 23:49:03
うらがみ⛄ @backpaper0

ifPresent(stage::setTitle);の方がnullリテラル消えて好み。

2015-03-31 23:49:44
うらがみ⛄ @backpaper0

iPhoneで書いたからコンパイルできるかどうかはわからないけども!

2015-03-31 23:50:21
うらがみ⛄ @backpaper0

しかしOptionalのOptionalってヤバい感じ漂うのでもっと美しい方法身につけたい

2015-03-31 23:52:14
うらがみ⛄ @backpaper0

@backpaper0 Optional.ofNullableの閉じかっこの位置間違えてる!!!

2015-03-31 23:54:34
うらがみ⛄ @backpaper0

@yusuke つらみ感じるコードになってしまいました!(இдஇ`。)

2015-04-01 00:08:52
山本ユースケ @yusuke

@backpaper0 labbdaイケル!もっとlambda!!もっともっと・・・・あれ?これ読みやすいの?メンテしやすいの?ってなることありますよねーw

2015-04-01 00:09:53
うらがみ⛄ @backpaper0

@yusuke 新しいおもちゃは大体そうなりますwww

2015-04-01 00:10:51
tksy(吉村 武志) @takesi_yosimura

title.map(Optional::of).orElseGet(()->Optional.ofNullable(controller.getClass().getAnnotation(Title.class)).map(Title::value)).ifPresent…か?

2015-04-01 01:12:08
あべ ひろあき @hiroaki_abe

@itoKami1123 見てくれて嬉しいな!関数本読んでます?

2015-04-01 05:51:40
いとかむ @ito_kamu

@hiroaki_abe Javaの関数本、通勤電車でちょこちょこと読んでます〜。まだ最初の方ですけど…

2015-04-01 12:44:29
うらがみ⛄ @backpaper0

追記があった。"スコープ汚染したくない "だけならOptionalとかじゃなくてブロックで新たにスコープ切ったら良いと思うなー。 twitter.com/itokami1123/st…

2015-04-01 15:11:17
うらがみ⛄ @backpaper0

Optionalはやっぱnullかもしれない状態を型で表すものだから目的と道具が合ってない気がする

2015-04-01 15:12:43
たろう @ngsw_taro

@backpaper0 orElseGetの中でnull返してるし、というかその結果をOptionalでまた包むし、わーーわーー><

2015-04-01 15:19:22
きしだൠ(K1S) @kis

@ngsw_taro @backpaper0 結局のところ、getAnnotationがnull返すし、幸せになりにくい、ってことですねー。orElseGetの中でofNullableするのがよさげ

2015-04-01 15:31:45
きしだൠ(K1S) @kis

@ngsw_taro @backpaper0 あ、違った。Optional使ってもあまり幸せにならないやつですねー

2015-04-01 15:33:52
たろう @ngsw_taro

@kis @backpaper0 Guavaと違ってJava8のOptionalはorElse(Optional)みたいなのないのが不便ですね

2015-04-01 15:35:15
きしだൠ(K1S) @kis

応用というか、Optionalの弱点というか。Optional使うなら こう書かざるを得ないよなーという感じ。 「Optionalの応用① - Javaっと解決!」 java-tto-kaiketsu.hatenablog.jp/entry/2015/03/…

2015-04-01 15:38:31
たろう @ngsw_taro

@yy_yank 思わずコメント書いてしまった><

2015-04-01 16:57:45