Spring 6, spring boot 3.0 기본 스펙인 Java 17
Record
- constructor, getter, toString, equals and hashcode 자동생성
- 코틀린의 data class
- 단, java의 record class는 field를 final로 지정
sealed classs
- jdk15 preview, jdk17 공식지원
- 상속 및 구현 클래스 지정
sealed class Hero permits Batman, Superman, Spiderman {}
- 같은 패키지 내에서의 확장만 가능
- 지정된 클래스에서는 final, sealed, non-sealed 중 하나로 선언 필수
- 코틀린에서도 sealed class 존재
- 내부적으로 abstract class → 인스턴스 생성 불가능
- sealed class는 abstract class와 달리 같은 패키지 내에서만 사용가능
pattern matching for instanceof
- jdk16 공식지원
- instanceof 로 검증되면 (타입)a.b() 와 같이할 필요없이 바로 캐스팅된 메서드 사용가능
- 코틀린에서의 is