반응형
나만 몰랐던 건가....
Var 타입은 JavaScript에서 사용하는 방식입니다. (var만 보면 발작 버튼이.... 부들부들... 최대한 JS var는 지양해야 합니다.)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var
var - JavaScript | MDN
The var statement declares a function-scoped or globally-scoped variable, optionally initializing it to a value.
developer.mozilla.org
이 var 형식을 Java11에서 어떻게 사용할 수 있을까? 정확히는 Java10에 도입되었네요.
간단하게 var는 타입 추론 방식입니다. 타입 추론은 위에 문서에 잘 정리되어 있습니다.
멤버를 가져온 리스트 중에 "hello1234"이라는 이름의 사람만 가져오는 코드 확인해봅시다.
List<Member> findMembers = em.createQuery("select m from Member as m", Member.class)
.getResultList();
findMembers = findMembers.stream()
.filter( m -> m.getName().equals("hello1234"))
.collect(Collectors.toList());
System.out.println(findMembers.toString());
정상적으로 잘 가져오는 것을 볼 수 있습니다.
여기서 Var를 어떻게 사용할 수 있을까?
List<Member> findMembers = em.createQuery("select m from Member as m", Member.class)
.getResultList();
findMembers = findMembers.stream()
.filter((@NonNull var m) -> m.getName().equals("hello1234"))
.collect(Collectors.toList());
System.out.println(findMembers.toString());
람다 식에서 var로 타입을 추론할 수 있습니다.
이게 뭐가 필요할까?
var를 사용하지 않았을 경우 member 객체 타입만 확인이 가능한 것을 볼 수 있습니다.
타입 추론이 가능해지면서 람다 식에서 컴파일 시점에 정확한 Entity 타입을 확인할 수 있고, 다양한 어노테이션을 사용할 수 있습니다.
회사에서 java 11 버전을 쓰는데 재미있네요....
반응형
'혼자 공부하는 것들 > JAVA' 카테고리의 다른 글
ConcurrentHashMap의 get(), put() 분석 (0) | 2023.07.02 |
---|---|
Objects.requireNonNull은 왜 사용할까? (0) | 2023.06.01 |
가변인수는 신중하게! (3) | 2022.03.16 |
익명 클래스하고 람다식은 어떤 상황일 때 사용해야할까? (2) | 2022.03.10 |
[동시성 이슈해결] HashMap보다는 ConcurrentHashMap을 쓰자! (0) | 2022.01.01 |
댓글