SlideShare a Scribd company logo
1 of 21
Download to read offline
(今更ながら)
Java8触ってみた
~ラムダ式篇~
2017/10/11(水)
目黒のぞみ
Java8とは
● 2014年3月18日にリリースされたJDK8のこと。
  ※現在の最新はJava9
● 機能が追加されまくり。めぼしいものは下記。
○ ラムダ式
○ Stream API
○ Optional型
○ 日付時刻API
○ デフォルトメソッド ・・・・・・・・・etc
Java8とは
● 2014年3月18日にリリースされたJDK8のこと。
  ※現在の最新はJava9
● 機能が追加されまくり。めぼしいものは下記。
○ ラムダ式 ← 今回はこのおはなし
○ Stream API
○ Optional型
○ 日付時刻API
○ デフォルトメソッド ・・・・・・・・・etc
ラムダ式を見てみる
Listに格納されたベイスターズの選手名をForEachで出力
ラムダ式を見てみる
Listに格納されたベイスターズの選手名をForEachで出力
これが
こうなる
ラムダ式と無名クラス
● ラムダ式とは・・・
無名クラスを簡単に記述するための構文
● 無名クラスとは・・・
その場限りで使いたい時に作るクラス
インターフェースのインスタンスを生成する際に
その時だけ実装したい処理を書く時とかに使う
ラムダ式と無名クラス
● ラムダ式とは・・・
無名クラスを簡単に記述するための構文
● 無名クラスとは・・・
その場限りで使いたい時に作るクラス
インターフェースのインスタンスを生成する際に
その時だけ実装したい処理を書く時とかに使う
↑まだちょっとよく分かんない
無名クラスで書く
さっきのforEachを例に・・・
● forEachメソッド:Consumerクラスを引数に取る
● Consumerクラス:関数型インターフェース(※)
※実装が必要なメソッドを1つだけ持つI/F
無名クラスで書く
forEachメソッドを使うために無名クラスを作る
無名クラスで書く
forEachメソッドを使うために無名クラスを作る
Consumerクラスの
インスタンスを生成
acceptメソッドの実装
ラムダ式で書く
(実装するメソッドの引数) -> {実装する処理} で書く
※1行なので波括弧{}は省略
ラムダ式で書く
(実装するメソッドの引数) -> {実装する処理} で書く
Consumerクラスの
acceptメソッドの引数
acceptメソッドに
実装したい処理
ラムダ式で書く
(実装するメソッドの引数) -> {実装する処理} で書く
Consumerクラスの
acceptメソッドの引数
acceptメソッドに
実装したい処理す ご い ね !!
ラムダ式ってつまり・・・
関数型I/Fにはひとつしかメソッドがない
⇒当然ながら実装できるメソッドもひとつしかない
⇒メソッド名を指定しなくてもいけるやん!
ラムダ式ってつまり・・・
関数型I/Fにはひとつしかメソッドがない
⇒当然ながら実装できるメソッドもひとつしかない
⇒メソッド名を指定しなくてもいけるやん!
ま さ に 抽 象 化 !!!!
ラムダ式でもっと短く書く
● 丁寧なラムダ式
● 引数が1つなので型を省略(丸括弧()も省略)
● メソッド参照(※)を使う
※Java8の新機能。説明省略。とても便利。
まとめ
● ラムダ式めっちゃ便利
● Java8以降はラムダ式が前提の新機能がたくさん
● だからラムダ式使おう
● というかJavaやろう
● Javaやろう
参考にしたサイト
● Java 8 新機能つまみぐい - Qiita
   <https://qiita.com/oohira/items/9c13f92815266cc5112c#>
● 5分で読む入門編:Java 8 ラムダ式 TECHSCORE BLOG
   <http://www.techscore.com/blog/2015/03/11/5分で読む入門編:java-8-ラムダ式/>
● Java8 ラムダ式入門2
   <https://gist.github.com/asufana/a41bcc70ee482b5a4551>
● Java8ラムダ式の使い方の基本 - TASK NOTES
   <http://www.task-notes.com/entry/20150418/1429359646>
※たぶんもっとたくさんあります
ご清聴
  ありがとう
ございました!

More Related Content

Viewers also liked

Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要
Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要
Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要オラクルエンジニア通信
 
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話洋史 東平
 
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)Daisuke Nishino
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjugYuji Kubota
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にTaku Miyakawa
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017Carol Smith
 

Viewers also liked (8)

Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要
Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要
Oracle Data Minerハンズオンセミナー170927:①Oracle 機械学習概要
 
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
 
Zero Data Loss Recovery Appliance 設定手順例
Zero Data Loss Recovery Appliance 設定手順例Zero Data Loss Recovery Appliance 設定手順例
Zero Data Loss Recovery Appliance 設定手順例
 
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
[ダウンロード推奨]OOW2017 and Javaone2017 report Daisuke Nishino(Sompo Systems)
 
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjug
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

【社内勉強会#9】(今更ながら)java8触ってみた~ラムダ式篇~