Set.ofの実態とは?
Java9から、Set.of関数などデフォルトメソッドがインターフェースに
実装されたので、簡単にSetのオブジェクトが作成できるようになった。
実体として何のクラスのオブジェクトが作られるのか気になったので
やってみた。
$ ./jshell
| JShellへようこそ -- バージョン9
| 概要については、次を入力してください: /help intro
jshell> Set.of("a","b")
$1 ==> [b, a]
jshell> $1.getClass()
$2 ==> class java.util.ImmutableCollections$Set2
ということで、java.util.ImmutableCollections
が実クラスでした。イミュータブルなものとして使えるというフレコミだったので、そのままでした。