SlideShare a Scribd company logo

JDK9の真の目玉機能はこれだ!

2017/6/24 KANJAVA PARTY LT 「JDK9の真の目玉機能はこれだ!」

1 of 18
Download to read offline
#ccc_g11
Copyright 2017 Hiroyuki Onaka
この作品は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
JDK9の真の目玉機能はこれだ!
2017/6/24 KANJAVA PARTY 2017 !!!
大中浩行(@setoazusa)
#ccc_g11
Copyright 2017 Hiroyuki Onaka
今日はお疲れ様でした!
• 大中浩行
• @setoazusa(せとあず)
• 横浜から来ました(神奈川から来たとは言わない)
#ccc_g11
Copyright 2017 Hiroyuki Onaka
宣伝
コミックマーケット92
8/11(金・山の日) 東地区 "そ"ブロック-39b
「ふぃーるどのーつ」
TDDとBDDの本出します!
→通販もやります! https://fieldnotes.booth.pm/
#ccc_g11
Copyright 2017 Hiroyuki Onaka
JDK9 2017/9/21 リリース予定!
やはり目玉はProject Jigsaw!
JShellも注目ですね!
JavaDocの検索機能等の改善も嬉しいポイントです!
#ccc_g11
Copyright 2017 Hiroyuki Onaka
だがしかし
私がここで紹介したいのは、標準API内のjava.util.Mapです。
#ccc_g11
Copyright 2017 Hiroyuki Onaka
今までよくあった、Mapの初期化のコード
Map<Integer, String> map = new HashMap<>() {
{
put(1, "あなたと");
put(2, "JAVA");
put(3, "今すぐ");
put(4, "ダウンロード");
}
};

Recommended

「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまでHiroyuki Ohnaka
 
Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜHiroki Kondo
 
kosenconf をきっかけに新しい縁を
kosenconf をきっかけに新しい縁をkosenconf をきっかけに新しい縁を
kosenconf をきっかけに新しい縁をshiget84
 
Java event impression
Java event impressionJava event impression
Java event impressionOgataAyaka
 
WordCampTokyo2012 開催のお知らせとスタッフ募集
WordCampTokyo2012 開催のお知らせとスタッフ募集WordCampTokyo2012 開催のお知らせとスタッフ募集
WordCampTokyo2012 開催のお知らせとスタッフ募集Shinichi Nishikawa
 
ジャバのはなし、JAVAのはなし、Javaのはなし
ジャバのはなし、JAVAのはなし、Javaのはなしジャバのはなし、JAVAのはなし、Javaのはなし
ジャバのはなし、JAVAのはなし、JavaのはなしYujiSoftware
 

More Related Content

More from Hiroyuki Ohnaka

remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱いHiroyuki Ohnaka
 
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験Hiroyuki Ohnaka
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...Hiroyuki Ohnaka
 
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話Hiroyuki Ohnaka
 
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプルHiroyuki Ohnaka
 
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Hiroyuki Ohnaka
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescriptHiroyuki Ohnaka
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版Hiroyuki Ohnaka
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版Hiroyuki Ohnaka
 
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~Hiroyuki Ohnaka
 
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘いHiroyuki Ohnaka
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Hiroyuki Ohnaka
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」Hiroyuki Ohnaka
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)Hiroyuki Ohnaka
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcHiroyuki Ohnaka
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)Hiroyuki Ohnaka
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Hiroyuki Ohnaka
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約Hiroyuki Ohnaka
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記Hiroyuki Ohnaka
 

More from Hiroyuki Ohnaka (20)

remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱い
 
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
 
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
 
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル
 
Mackerelの薄い本
Mackerelの薄い本Mackerelの薄い本
Mackerelの薄い本
 
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Microsoft DocsにContributeした話
Microsoft DocsにContributeした話
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescript
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
 
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~
 
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbc
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
 

Recently uploaded

FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)fisuda
 
Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹
Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹
Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹koukimiurah
 
local launch small language model of AI.
local launch small language model of AI.local launch small language model of AI.
local launch small language model of AI.Takao Tetsuro
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-KojiMaruyama5
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデートHironori Washizaki
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225Hironori Washizaki
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】Tomoharu ASAMI
 

Recently uploaded (7)

FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
 
Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹
Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹
Backlog APIで現在(いま)必要なデータを集める-ドゥウェル株式会社 三浦恒樹
 
local launch small language model of AI.
local launch small language model of AI.local launch small language model of AI.
local launch small language model of AI.
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
 

JDK9の真の目玉機能はこれだ!

  • 1. #ccc_g11 Copyright 2017 Hiroyuki Onaka この作品は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。 JDK9の真の目玉機能はこれだ! 2017/6/24 KANJAVA PARTY 2017 !!! 大中浩行(@setoazusa)
  • 2. #ccc_g11 Copyright 2017 Hiroyuki Onaka 今日はお疲れ様でした! • 大中浩行 • @setoazusa(せとあず) • 横浜から来ました(神奈川から来たとは言わない)
  • 3. #ccc_g11 Copyright 2017 Hiroyuki Onaka 宣伝 コミックマーケット92 8/11(金・山の日) 東地区 "そ"ブロック-39b 「ふぃーるどのーつ」 TDDとBDDの本出します! →通販もやります! https://fieldnotes.booth.pm/
  • 4. #ccc_g11 Copyright 2017 Hiroyuki Onaka JDK9 2017/9/21 リリース予定! やはり目玉はProject Jigsaw! JShellも注目ですね! JavaDocの検索機能等の改善も嬉しいポイントです!
  • 5. #ccc_g11 Copyright 2017 Hiroyuki Onaka だがしかし 私がここで紹介したいのは、標準API内のjava.util.Mapです。
  • 6. #ccc_g11 Copyright 2017 Hiroyuki Onaka 今までよくあった、Mapの初期化のコード Map<Integer, String> map = new HashMap<>() { { put(1, "あなたと"); put(2, "JAVA"); put(3, "今すぐ"); put(4, "ダウンロード"); } };
  • 7. #ccc_g11 Copyright 2017 Hiroyuki Onaka JDK9から、Mapのstatic factoryメソッドが追加されました! http://download.java.net/java/jdk9/docs/api/java/util/Map.html Map<Integer,String> map = Map.of(1, "あなたとJAVA");
  • 8. #ccc_g11 Copyright 2017 Hiroyuki Onaka え、KeyとValueの組み合わせが2つある場合はどうなるのかっ て?
  • 9. #ccc_g11 Copyright 2017 Hiroyuki Onaka Map<Integer,String> map = Map.of(1, "あなたとJAVA", 2, "今すぐダウンロード");
  • 10. #ccc_g11 Copyright 2017 Hiroyuki Onaka 「君は引数を6つ取るのが得意なフレンズなんだね!」
  • 11. #ccc_g11 Copyright 2017 Hiroyuki Onaka 「へーきへーき!引数によって得意なことは違うから!」
  • 12. #ccc_g11 Copyright 2017 Hiroyuki Onaka 組み合わせが11通り以上の時はどうするのか どうもしません 普通にHashMap(またはその派生クラス)作ってください ※(6/25追記) java.util.Map.entryをstatic importすることで、以下 の様に書けます(@toriken0425 さんありがとうございます) )Map<Integer,String> map = Map.ofEntries(entry(1,"あ "), entry(2, "な"), entry(3, "た")..);
  • 13. #ccc_g11 Copyright 2017 Hiroyuki Onaka 解説 引数が (K, V, K, V…)となるため、単一の型の繰り返しになる可 変長引数は使えないわけです。 なので、引数の型の繰り返しをベタにならべることでこのイン ターフェースを実現しています。
  • 14. #ccc_g11 Copyright 2017 Hiroyuki Onaka 実は、言語仕様にTupleを持っていない言語でこういう型の組み 合わせを実現しようとする場合は、こういうインターフェースは 一般的。 こういう場合にbuilderやfactoryメソッドを使って頑張っていた Javaのほうがむしろ例外。
  • 15. #ccc_g11 Copyright 2017 Hiroyuki Onaka 例: .NET FrameworkのTupleクラス https://msdn.microsoft.com/ja-jp/library/system.tuple(v=vs.110).aspx
  • 16. #ccc_g11 Copyright 2017 Hiroyuki Onaka まとめ • 普段何気なく使っている標準クラスにも、JDKのバージョン アップでAPIは追加されていきます • JavaDocを読み返してみると、思わぬ発見があるかも?
  • 17. #ccc_g11 Copyright 2017 Hiroyuki Onaka あなたとJAVA, 今すぐダウンロード
  • 18. #ccc_g11 Copyright 2017 Hiroyuki Onaka ありがとうございました! • 大中浩行(Onaka,Hiroyuki) • @setoazusa • グロースエクスパートナーズ株式会社 アーキテクチャソリューション部 テクニカルリード • http://hiroyuki.fieldnotes.jp/