JAVA · 기초 문법
var(지역 변수 타입 추론) 심화
var의 허용 범위와 제약사항을 정확히 이해합니다.
기초 문법중급var타입추론Java10Java11
핵심 설명
var의 허용 범위와 제약사항을 정확히 이해합니다.
Java code
import java.util.*;
import java.util.stream.*;
public class VarAdvanced {
public static void main(String[] args) {
// var 사용 가능한 곳
var list = List.of(1, 2, 3); // List<Integer>
var map = new HashMap<String, Integer>(); // HashMap
var stream = list.stream(); // Stream<Integer>
// 람다에서 var (Java 11+) — 어노테이션 붙이기 가능
list.stream()
.map((@SuppressWarnings("unused") var x) -> x * 2)
.forEach(System.out::println);
// for문에서 var
for (var i = 0; i < 10; i++) {
// i는 int로 추론
}
// try-with-resources에서 var
// var reader = new java.io.FileReader("test.txt");
// var 사용 불가: 필드, 파라미터, 반환타입
// 다이아몬드 연산자와 조합 시 주의
var ambiguous = new ArrayList<>(); // ArrayList<Object>!
}
}학습 팁
var와 다이아몬드 연산자(<>)를 함께 쓸 때는 타입이 Object로 추론될 수 있으니 명시하세요.
주의할 점
var x = null;은 타입을 추론할 수 없어 컴파일 에러입니다. var x = (String) null;처럼 캐스팅이 필요합니다.
자주 묻는 질문
var(지역 변수 타입 추론) 심화란 무엇인가요?
var 의 허용 범위와 제약사항을 정확히 이해합니다.
var(지역 변수 타입 추론) 심화 학습 시 주의할 점은 무엇인가요?
var x = null; 은 타입을 추론할 수 없어 컴파일 에러입니다. var x = (String) null; 처럼 캐스팅이 필요합니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.