Seeing is believing

いちエンジニアの日々の興味のあるところ、イベント参加記録、学びの共有を取止めなく※このblogは個人の見解であり所属する組織の見解ではありません

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

が実クラスでした。イミュータブルなものとして使えるというフレコミだったので、そのままでした。