Moon_Dev_Blog :)

[Groovy] Groovy 3.0 version 미만에서 Java Lambda 에서 사용하는 이중콜론(::) 대체 방법 본문

IT/Groovy

[Groovy] Groovy 3.0 version 미만에서 Java Lambda 에서 사용하는 이중콜론(::) 대체 방법

돌베기 2021. 1. 30. 02:09

    안녕하세요. 본 포스팅은 주관적으로 작성되며, 틀린 정보가 있을 시에 따끔한 충고 부탁드리겠습니다. 감사합니다.

 

    내용 : Groovy의 버전이 3.0 버전 미만 일시 Java의 람다식 표현의 ::(이중 콜론)의 사용이 제한 되어 

       

              대안에 대한 포스팅입니다.

 

3.0 이상 버전의 경우 Java 8이 지원하는 람다식 표현을 Java의 문법과 동일하게 사용할 수 있습니다.

 

참고 URL : http://groovy-lang.org/releasenotes/groovy-3.0.html

 

The Apache Groovy programming language - Groovy 3.0 release notes

We bumped the Groovy dependency for TestNG to 7.2.0. Unfortunately, at the time of release, that version exists only in jcenter, not Maven central. If you are using the groovy-all pom or bom, you can add jcenter as a repository to your configuration if not

groovy-lang.org

 

회사에서 맡고 있는 솔루션의 주 백엔드 언어는 Java, Groovy를 사용하고 있습니다.

 

API 개발 중 목록을 조회하여 해당 목록 중 최저값을 람다를 통해 구하고자 작업을 하던 중 이중 콜론 문법이

 

현재 버전에서 지원하지 않는다는 경고문과 함께 에러가 발생됩니다.

어디서 발생되는 버전 문제인지 고민을 하다.. 해당 코드가 쓰인 파일이 Groovy확장자를 가진 파일이기에

 

혹시 하는 마음에.. 구글링을 통해 검색해본 결과,

 

Java Lambda 식 표현의 대다수가 Groovy 3.0 버전에서 지원하기 시작했다는 걸 알 수 있었습니다.

 

대안을 찾아 구글링을 하던 중.. Groovy의 클로저를 통해

 

Comparator API를 사용할 수 있는 걸 확인할 수 있었습니다.

Groovy의 문법상 데이터 모델의 프로퍼티들은 Getter,Setter를 생략 할 수 있습니다

::(이중콜론) 뿐 아니라 다른 람다식 문법도 클로저를 활용하여 사용 할 수 있는지는 추후 작업을 해봐야 할 것 같습니다.

 

개인 프로젝트가 아닌 회사 프로젝트이기에 신중하게 검증을 하지 않고 무턱대고 프로젝트의 버전을 올릴 시

 

문제가 발생 될 수 있기에.. 위의 문법을 사용하여 작업 후 추후 최신 버전으로 올리는 작업을 진행해야 할 것 같습니다.

 

Comments