IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
関数型インタフェース ラムダ式はどのような場面で使用できるのだろうか? Java 8では実装するべきメソッドが1つしかないインタフェースを「関数型インタフェース」として扱うことができ、ラムダ式はこの関数型インタフェースの代わりに使用することができる。前述のサンプルで例として挙げたjava.util.Comparatorも関数型インタフェースとして扱うことができるインタフェースの1つというわけだ。 なお、Java 8ではjava.util.functionパッケージで以下のような汎用的な関数型インタフェースがいくつか用意されており、後述するコレクションAPIなどではこれらのインタフェースが使用されている。ラムダ式を使用可能なメソッドを自作する場合は基本的にこれらの汎用的な関数型インタフェースを使用するといいだろう。 Function<T, R> … 1つの引数を受け取って結果を返す関数 Bi
メソッド参照 メソッドの参照をラムダ式の代わりに指定することも可能だ。たとえば以下のサンプルコードではforEach()メソッドの引数にSystem.outのprintln()メソッドの参照を渡している。 List<String> list = Arrays.asList("Java", "Scala", "Groovy"); list.forEach(System.out::println); 上記の2行目は以下のコードと同じ意味になる。 list.forEach((s) -> System.out.println(s)); メソッド参照はラムダ式同様、関数型インタフェースの型を持つ変数への代入が可能だ。 Consumer<String> c = System.out::println; c.accept("Hello, World!"); 実質的final 従来のJavaで匿名クラスを
こんにちは。 アキバです。 本日3/18、ついに、Java8が正式リリースされますね! もうダウンロードされましたか?ってまだですかね?私はまだです(だって公開前にエントリ書いてるんだもんね) 2014/03/19追記:Oracleのページが更新されました!→こちら さて、前回に続いて、Java8で追加された地味で便利なAPIを紹介していきます。 今回は、みんな大好きMapとConcurrent、あとちょびっとComparatorです。 3. Map操作編 (1) Map#getOrDefault() これまでは、Mapから値を取得してnullだったらデフォルト値を使用する、みたいなコードを以下のように書いていたと思います。 Map<String, String> map; // 何らかのMap String value = map.get("key"); if (value == nul
こんにちは! アキバです。 ...T3ブログは初登場かもしれません。ハジメマシテ。 以後お見知りおきを。 いよいよ、2014年3月、Java8が正式公開されますね。 なんと言っても、Java8の注目機能はラムダ式ですので、ラムダ式や型推論に関する記事は多いです。 世の中で「Java8」と検索すると、皆さんいろいろと記事を書かれているので、おおよその事はこれで分かっちゃうような気がします。 が、 実は地味に便利なAPIが追加されていたりすることを最近知りました。 これはあまり触れられていないぞ、と。 というわけで、このエントリでは、あまり日本語で情報の無い、しかし地味に便利なAPIに実際に触れてみます。 大事なところなので2回強調して書いてみました。 今回は、前編として4つ紹介します。 ※APIの紹介と言いつつ、コードにはラムダ式を使ったコードが普通に出てるので、ご了承ください。 (むしろ、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く