この記事は GMOアドマーケティング Advent Calendar 2021 13日目の記事です。 GMOアドマーケティングのT.Nです。 Java 17でSealed ClassesがPreviewからStandardになりました。 弊社でも先日一部のプロダクトをJava 17にバージョンアップしたので、 今後Sealed Classesを活用していけるように記事にまとめました。 今回の記事は全体的にJEP 409 を参考にしています。 Sealed Classesとは 簡単に説明すると、 extends、implementsできるクラスを制限するための仕組みです。 sealed、non-sealed、permitsという新しい文法を使って実現できます。 Sealed Classesを活用することで、 クラスの階層でドメイン知識を表現しやすくなります。 sealedをつけたクラス、イン