RMIは役目を終えていると思います。(書けるかどうかはわからないですけど)、本エントリーはJEPになっていないものも含めてAPIの変更についてまとめます。今回もABC順にならんでいます。同じように、セキュリティ系のAPIはちゃんと理解していないので、省略してます。15ではNashornが廃止されましたが、Nashornはjdkではじまるモジュール(jdk.scripting.nashorn)なので、標準API的には変化がありません。その他の廃止にAPIは定数が1つ、コンストラクタが2つととても少ないです。Remote関連の定数が1つ削除されました。javax.management.remote.rmi.RMIConnectorServer.CREDENTIAL_TYPESCREDENTIAL_TYPESの代わりにCREDENTIALS_FILTER_PATTERNを使うようにします。いうものの、JMXをRMIで接続するコードを書くことは、自分で監視用ツールを作るということでもない限り使わないでしょうね。14でforRemoval=trueになったコンストラクタが早々と削除されました。java.lang.invoke.ConstantBootstraps.<init>java.lang.reflect.Modifier.<init>ConstantBootstrapsクラスはCONDYのブートストラップのためのユーティリティクラスですが、もともとstaticなクラスメソッドしか定義されていないので、コンストラクタがある方がおかしかったわけです。Modifierクラスもモディファイアの定数と、クラスメソッドのisXXXメソッド群を定義しているクラスなので、コンストラクタは必要ありません。基本的にはClass.getModifiersメソッドやMember.getModifiersメソッドで返されるint値を引数にして、isXXXメソッドでチェックするという使い方です。このため、これらのコンストラクタが削除されたとしても、影響はないでしょう。Activationに関するものです。14で追加されたAPIのほとんどがjava.baseモジュールで、その他はjava.compilerモジュールだけです。追加が多かったパッケージはjava.langパッケージ。いうものの、恒例のUnicodeのブロックとスクリプトがあるせいですけど。java.base/java.langパッケージjava.langパッケージではクラス定義の変更や、前述したUnicode関連の変更、またJEP関連のメソッド追加があります。12でCondyが導入されたため、新しく導入されたのがConstableインタフェースです。12でIntegerクラスやDoubleクラスなどはConstableインタフェースを実装するように変更されていました。15でConstableインタフェースを実装するように変更されました。Constableインタフェースの実装に伴い、以下のメソッドが追加されています。describeConstable()まぁ、普通の開発者は使わないでしょうけど。CharSequenceインタフェースStringクラスでは定義されていたisEmptyメソッドが、CharSequenceインタフェースで定義されるようになりました。isEmpty()isEmptyメソッドはデフォルトメソッドなので、CharSequenceインタフェースの実装クラスは変更なしです。その実装はStringクラスのそのままです。13をサポートするようになりました。13といえば、最近セブンイレブンでも売り出して話題のビャンビャン麺のビャンの文字が入るわけです。現時点で最も画数の多い漢字ですwそれはそうと、Unicodeのバージョンがあがると、当然のごとくブロックとスクリプトが追加されます。追加されたブロックを示す定数は以下の8種類です。CHORASMIANCJK_UNIFIELD_IDEOGRAPHS_EXTENSION_GDIVES_AKURUKHITAN_SMALL_SCRIPTLISU_SUPPLEMENTSYMBOLS_FOR_LEGACY_COMPUTINGTANGUT_SUPPLEMENTYEZIDICharacter.UnicodeScript列挙型スクリプトの定数は4種類追加されました。CHORASMIANDIVES_AKURUKHITAN_SMALL_SCRIPTYEZIDIClassクラスClsssクラスには2つのJEPに関連するメソッドが追加されました。Classes関連のメソッドです。Classかどうかを調べるメソッドです。Classについては、後述するMethodHandlesクラスの時に説明します。Classについて簡単に説明しておきましょう。Classは継承を限定できるクラスです。Classを定義するにはclassの前にsealedをつけ、派生させるクラスをpermitsの後に列挙します。Shpaeクラスを派生できるのはCircleクラスとRectangleクラスだけとしましょう。