Mala Gupta : 新世代 Java プログラミングガイド

作成日 : 2023-02-09
最終更新日 :

概要

副題は「Java SE 10/11/12/13 と言語拡張プロジェクト」

感想

Java を再度勉強してみようと思い立って借りた本だ。 この本は私のような初心者を対象としているのではなく、プロを対象としているようだ。なので、これは困ったと思った。 p.191 のまとめでは次のように述べられている。

この本では、最新の Java のバージョンを説明しました。(中略) Java は確固とした開発のロードマップを持っており、既存の機能と新たな能力で開発者と企業に刺激を与え続けています。 (中略)開発者として、あなたは新たな Java の機能と改善に今まで以上に短期間に取り組むことが求められます。

すべての開発者が新たな Java のバージョンがリリースされるごとに改善点と追加点を学ぶべきです。(後略)

わたしは Java の開発者ではなくてよかったと思った。

Amber プロジェクト

Amber プロジェクトは Java のいろいろな機能拡張をまとめて扱うプロジェクトである。その中の 4 つの機能が解説されている。 以下記しているのは、本書が刊行された以降の情報だ。

拡張 Enum 型

第 13 章の拡張 enum 型は JEP 301 で提案されたが、その後撤回された(withdrawn)。従って、 Java では使うことはできない。https://openjdk.org/jeps/301 を参照。

データクラスとその利用方法

第 14 章データクラス(レコード)は、JEP 359 で提案され、Java 14 でプレビュー言語機能となっている。 プレビュー言語機能に関しては、下記を参照のこと。
https://docs.oracle.com/javase/jp/19/language/preview-language-and-vm-features.html
その後 JEP 384 で第2のプレビュー言語機能となり、最終的に JEP 395 でレコードが正式に Java 16 で採用されている。

テキストブロック

テキストブロックは 2 度のプレビュー言語機能 (JEP 355, JEP 368) を経て、JEP 378 で正式に Java 15 で採用されている。

ラムダの改善ポイント

第 16 章のラムダの改善ポイントは JEP 302 であり、これは Candidate の状態である。

パターンマッチング

第 17 章のパターンマッチングは本書刊行の時点では JEP 305 がプレビュー言語機能の状態だった。 その後 JEP 375 で二度めのプレビュー言語機能となり、最終的に JEP 394 で Java 16 で正式採用された。

この章で使われているコード例はなかなかこわい。 dyingFish() という関数が定義されていて、この関数はオブジェクトを一つ引数にとる。ここで引数のオブジェクトは 次の (Ocean|Sea|River) のいずれかのクラスに定義されている。dyingFish 関数は、 引数が Ocean に所属していたらメソッド getBottles() を呼び出し、 Sea に所属していたらメソッド getDeadFish() を呼び出し、River に所属していたらメソッド getPlasticBags() を呼び出す。 getPlasticBags() は数を返すメソッドで、dyingFish 関数はこの数が 100 を越えていたら次のメッセージを出す。
"Say no to plastic bags. Fish are dying!"
別のコード例は少し文面が違う。
"Humans enjoy! Fish die!"
なかなか凄い。

書誌情報

書名 新世代 Java プログラミングガイド
著者 Mala Gupta
訳者 柴田芳樹
発行日 2020 年 3 月 11 日 初版第1刷
発行元 インプレス
定価 2600 円(本体)
サイズ
ISBN 978-4-295-00847-7
備考 越谷市立図書館で借りて読む

まりんきょ学問所コンピュータの部屋コンピュータの本Java > Mala Gupta:新世代 Java プログラミングガイド


MARUYAMA Satosi