コンストラクタの代わりに、staticメソッドを提供した方が良い場合が多い。
publicにしなくてもそのインスタンスを取得できるpublicやprotectedのコンストラクタを持たないクラスのサブクラスは作成できないため、継承を禁止できるコンストラクタの代わりとして使われるstaticメソッドをstaticファクトリメソッドという。
staticファクトリメソッドは、次の規約に従って命名する。
型変換メソッドはfrom
Date d = Date.from(instant);
複数のオブジェクトの集約メソッド(まとめて格納したオブジェクトを返すメソッド)はof
Set<Rank> faceCards = EnumSet.of(JACK, QUEEN, KING);
fromやofの代わりにvalueOfを採用してもよい
BigInteger prime = BigInteger.valueOf(Integer.MAX_VALUE);