본문 바로가기
Java

타입 추론 var

by k0o9 2022. 5. 27.

# 타입추론 var

개발자가 변수의 타입을 명시적으로 적어주지 않고도, 컴파일러가 알아서 변수의 타입을 대입된 리터럴로 추록하는 것이다.

기존의 자바에서는 지원하지 않다가 자바 10부터 타입추론을 지원한다.

-var는 초기화값이 있는 지역변수로만 선언이 가능하다.

-var는 키워드가 아니다. 

:즉 어떠한 타입도 아니고 클래스에서 사용할 수 있는 예약어가 아니라는 것이다. 그래서 var이라는 문자를 변수명으로 사용할 수 도 있다.

-var는 런타임 오버헤드가 없다.

:var은 컴파일 시점에 리터럴의 값을 보고 추론해서 바이트 코드에 명시적으로 변수의 타입을 지정해 준다. 따라서 중간에 var로 선언된 변수의 타입이 절대 변경되지 않는다.

js의 var과 다름.

```java
Function<Integer, Boolean> p = (Integer x) -> booleanExpression;

->

 Function<Integer, Boolean> p = x -> booleanExpression;

```

위와 같이 한개의 식별자로 구성된 형식에 형식 추론을 사용하면 다양한 장점이 생긴다.

-한 형식을 다른 형식으로 교체할 때 편집 작업이 줄어든다.

-형식의 크기가 커지면서 제네릭이 다른 제네릭 형식에 의해 파라미터화 될 수 있다.

-형식 추론으로 가독성이 좋아질 수 있다.

'Java' 카테고리의 다른 글

Java Final과 불변객체  (0) 2022.05.27
Wrapper Class  (0) 2022.05.27
자바 변수  (0) 2022.05.27
자바 데이터 타입  (0) 2022.05.27
Garbage Collector  (0) 2022.05.27