[JAVA] JAVA version 17의 주요 변화
in JAVA
JAVA 17버전의 주요 변화 사항을 알아본다.
목차
텍스트 블록
- 이전 버전에서는 여러 줄의 텍스트를 작성할때 \n을 추가해야해서 가독성이 좋지 않은 부분이 개선되었다.
- 예시
String example11 = "SELETE * FROM \"product\"\n" + "WHERE \"country\" = \"KOREA\"\n" + "ORDER BY \"name\";\n"; String example17 = """ SELECT * FROM "product" WHERE "country" = "KOREA" ORDER BY "name; """; //가독성이 훨씬 좋아졌다
formatted() 메서드
- 값을 파싱하는 데 더 편하게 해주는 formatted() 메서드 제공
- 예시
String example17 = """ { "id": %d, "name": %s } """.formatted(1, "nahyun");
레코드
- 데이터 전달을 위한 객체를 더 빠르고 간편하게 만들기 위한 기능
- getter를 자동으로 만들어 주기 때문에 애너테이션이나 메서드로 게터를 정의하지 않아도 됨
- 예시
record Item(String name, int price) { //파라미터가 private final로 정의된다 } Item product1 = new Item("product1", 2500); product1.price(); //2500
패턴 매칭
- 타입 확인을 위해 사용하던 instanceof 키워드를 개선
- 이전에는 instanceof 키워드와 형변환 코드를 조합해야 했지만 이제는 바로 형변환 가능
자료형에 맞는 case 처리
- switch-case문에서 자료형에 맞게 case 처리 가능
- 예시
static double getIntegerValue(Object object) { return switch (object) { case Double d -> d.intValue(); case Float f -> f.intValue(); case String s -> Integer.parseInt(s); default -> 0d; }; }