본문 바로가기
Program Language/Java

Java10의 var 변수란?(Javascript X)

by 준짱IT 2025. 7. 15.

✅ 1. 타입 추론으로 코드 간결화

  • 불필요한 타입 중복을 제거해서 코드를 짧고 읽기 쉽게 해줌

🔸 Before (Java 8):

Map<String, List<String>> map = new HashMap<String, List<String>>();

🔸 After (Java 10~):

var map = new HashMap<String, List<String>>();

👉 가독성이 훨씬 좋아짐 — 특히 복잡한 제네릭 타입에서 효과 큼.

 

✅ 2. 유지보수 용이

  • 타입 변경 시 변수 선언도 함께 고쳐야 하는 번거로움을 줄여줌

🔸 예:

// 타입이 변경되어도 var는 그대로 사용 가능
var userList = getUsers(); // List<User>

 

→ 나중에 getUsers() 반환 타입이 바뀌더라도 코드를 수정할 필요 없음.

 

✅ 3. 일관된 선언 스타일

  • 모든 지역 변수 선언을 var로 통일하면 코딩 스타일이 정리됨.
  • 특히 Stream, Optional, Map.Entry 등 복잡한 선언에 유용.
for (var entry : map.entrySet()) {
    System.out.println(entry.getKey());
}

 

✅ 4. 불필요한 캐스팅 제거와 읽기 쉬운 코드

  • 타입 추론을 통해 중복 제거 + 명확성 유지.

🔸 예:

var stream = list.stream(); // 타입이 Stream<String>으로 추론됨

⚠️ 주의사항

단점/주의설명
타입 명시가 없어져 가독성 저하 우려 너무 남용하면 타입이 추론되기 어려워져 오히려 코드 이해가 어려워질 수 있음
초보자에겐 직관성 떨어질 수 있음 타입을 눈으로 확인할 수 없어 헷갈릴 수 있음
클래스 필드, 메서드 매개변수에는 사용 불가 var는 오직 지역 변수에만 사용 가능

 

✅ 요약

장점설명
✅ 코드 간결화 불필요한 타입 반복 제거
✅ 유지보수 편리 타입 변경에 강함
✅ 가독성 향상 복잡한 타입을 깔끔하게
✅ 일관된 스타일 선언 통일성 확보

결론: var변수는 자바스크립트의 var와 비슷한것처럼 보이지만.. 불편한 점도 분명 존재하므로 각각의 상황에 맞게 사용을 권장..!

'Program Language > Java' 카테고리의 다른 글

Java21 Virtual Thread(가상쓰레드) - 1  (5) 2025.07.22
Java sealed class란?  (1) 2025.07.16
Java record란?  (1) 2025.07.16
Java 12 - Switch Expressions  (1) 2025.07.16
자바 최신 버전과 1.8 버전의 차이 정리  (4) 2025.07.15