Java8
多重継承にも使えるけど、インタフェースには変数をもてないので用途としては弱い気がする 個人的には、FunctionalInterfaceの補助メソッドを定義する程度でとりあえず考えてたけど・・・ なんて事を書こうと思ってて時期が遅すぎたのでもう良いかなと思った…
Java8にはFunctionalInterfaceっていうannotationがあって、FunctionalInterfaceの場合は付けることを推奨されてるっぽいんだけど、無かったときにlambdaとして使えないのかな〜とふと思った。 なので、 既にFunctionalInterfaceがついてるインタフェースを…
この辺の違いがわかればStreamのAPIをみたら色々推測しやすくなるかなぁ〜と思ったのでまとめ Function @FunctionalInterface 値を受け取って他の値を返すもの。 値の変換とか色々を担当 なので、これを引数に取るStreamのAPIのほとんどは他の型のStreamを返…
ArrayListからStreamを取得して、filterした結果のStreamを2回使ってみた なんとなくのコードイメージはこんな感じ(あくまでイメージです) ArrayList<String> datas = getStringList(); Stream<String> stream = datas.stream().filter((s) -> s.length() > 3); stream.forea</string></string>…
closureの中のthisはclosureのオブジェクトになる。 Javaのclosureは無名クラスの生成をソースコード上で省略してるだけだ。気をつけろ! ちゃんとテストコード書いて確認しらclosureのオブジェクトにならなかった じゃあ、あの動きは何だったんだろう・・・…
Streamを使いつつふと思った疑問点が解消するかなぁ〜と 試したコード final AtomicInteger ai = new AtomicInteger(1); final ConcurrentLinkedQueue<Integer> queue = new ConcurrentLinkedQueue<>(); Streams.intRange(1,6).forEach((i)-> { queue.add(ai.getAndIn</integer>…