コンストラクタの代わりに、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);