Java 10 기능 집중: 지역 변수 타입 추론 마스터하기
JEP 286 - 지역 변수 타입 추론
지역 변수 타입 추론은 Java 10부터 사용 가능한 언어에서 가장 눈에 띄는 변화 중 하나입니다. var 키워드를 사용해 타입을 명시하지 않고 변수를 정의할 수 있습니다. 컴파일러가 제공된 값을 바탕으로 변수의 타입을 추론합니다. 이 타입 추론은 지역 변수에만 제한됩니다.
기존 지역 변수 선언 방식
String name = "Welcome to tutorialspoint.com";
새로운 지역 변수 선언 방식
var name = "Welcome to tutorialspoint.com";
이제 컴파일러는 제공된 값을 검사해 name 변수의 타입을 String으로 추론합니다.
주의사항
- 멤버 변수, 메서드 매개변수, 반환값에는 타입 추론 불가
- 지역 변수는 선언 시 초기화되어야 함. 그렇지 않으면 컴파일러가 추론할 수 없어 오류 발생
- 루프 문의 초기화 블록 내부에서 지역 변수 추론 사용 가능
- 런타임 오버헤드 없음. 컴파일러가 제공된 값을 기반으로 타입을 추론하므로 성능 손실 없음
- 동적 타입 변경 불가. 한 번 추론된 지역 변수의 타입은 변경할 수 없음
- 복잡한 보일러플레이트 코드를 지역 변수 타입 추론으로 줄일 수 있음
예제: 타입 추론으로 코드 간소화
Map<Integer, String> mapNames = new HashMap<>();
var mapNames1 = new HashMap<Integer, String>();
완전한 예제 프로그램
import java.util.List;
public class Tester {
public static void main(String[] args) {
var names = List.of("Julie", "Robert", "Chris", "Joseph");
for (var name : names) {
System.out.println(name);
}
System.out.println("");
for (var i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
}
}
출력
Julie
Robert
Chris
Joseph
Julie
Robert
Chris
Joseph