-
[매일읽기] Working with New Generation of Java개발자 라이프/매일읽기 2020. 9. 3. 10:34반응형
원문 : medium.com/swlh/working-with-new-generation-of-java-236e2dc38316
JDK 14에서 추가된 피쳐들을 살펴본다. 피쳐에 관련된 개선된 코드 비교는 원문을 참고하길 바랍니다.
Try-with-resource statement
- 기존의 try-catch 문은 자원 해제를 위해 finally 문을 별도로 사용해야 했음
- try-with-resource는 try 문에 아규먼트 형태로 변수를 초기화하여 사용할 수 있다.
- 초기화된 변수는 해당 try 문이 종료되면 자동으로 반환된다.
Switch expressions
- 기존 switch 문을 이용하여 특정 조건에 대한 분류를 한다면 case 별로 break를 달아줘야 했음
- 개선된 switch 문에서는 `->`를 이용하여 분류가 가능
- 코틀린의 `when` 문과 유사
Intializing with `var`
- 지역 변수에 대한 타입 추론 기능을 추가
- 클래스 멤버 변수나 함수의 아규먼트로는 사용 불가
- `var list = new ArrayList<String>();` 가능
- 변수 선언과 함께 타입이 정의되어야 함
Records
- 기존 클래스를 작성할 때는 `toString()`, `equals()`와 같은 부수적인 코드가 필수적으로 작성되어야 했음
- 클래스 대신 `record` 로 작성하면 자동적으로 사용 가능
- getter
- equals
- hashCode
- toString
Enhanced `instance of `
- 기존 instance of는 타입 체크만 했을 뿐, 타입 캐스팅을 별도로 해야 했음
- 개선된 instance of는 타입 체크와 함께, 타입 캐스팅된 변수 선언이 동시에 가능
Text Blocks
- 멀티 라인 문자열에 대한 삼중 따옴표 (""") 지원
Meaningful NPE messages
- 기존 NPE 메시지는 예외가 발생한 라인만 알려줌
- 같은 라인에 여러 호출이 담겨있으면 어디서 발생했는지 알 수 없음
- JVM `-XX:+ShowCodeDetailsInExceptionMessages` 옵션을 통해 자세한 NPE 발생 위치를 확인할 수 있음
읽고 나서
- 코틀린과 유사한 부분이 많다
- 자바가 부리나케 따라가는 거 같은데, open jdk 시장과 코틀린 사이의 차이점이 점점 모호해질 수도 있겠다
반응형