2021-05-10 19:45:42
Jdk10이상 버전부터 자바에도 자바스크립트와 같은 var 를 이용한 타입추론이 가능해졌습니다.
평상시 개발할때 Jdk8 위주로 써오던 터라, 개인공부를 하던 중 타입추론이라는 개념이 자바에도 있다는 것을 발견했습니다.
var 라는 예약어를 사용하는 이 타입추론은 보통 javascript
, scala
, swift
등의 언어에서 쓰이는 것으로 알고 있었는데,
자바와 같은 캐스팅에 민감한 언어가 var
라는 타입추론을 사용하는것이 상당히 흥미로워서 포스팅을 남겨보겠습니다.
간단히 말하면, 개발자가 타입을 명시하지 않더라도 컴파일러가 스스로 이 변수의 타입을 대입된 리터럴로 추론하는 것입니다.
자바 9이하에서는 이렇게 작성하여야 했던것이
String str = "Hello World!";
자바 10이상부터는 이렇게 작성할 수 있다는 것입니다.
var str = "Hello World!";
if(str instanceof String){//String 변수인지 확인
System.out.println("str 변수의 타입은 String 입니다.");
}
단순히 var만 씀으로써 뭐가 달라지는건데? 라고 궁금해 하실수 있겠지만,
Company<String> companyTest = money -> System.out.println("money = " + money);
와 같은 람다 표현식이 있다고 할때,
Company<String> companyTest = (@Nonnull var money) -> System.out.println("money = " + money);
이렇게 키워드 앞에 적절한 어노테이션을 붙여서 쓸수 있다는 장점도 있습니다.
참고 :
https://velog.io/@bk_log/Java-%ED%83%80%EC%9E%85-%EC%B6%94%EB%A1%A0