JaeWon's Devlog
article thumbnail
[Java] Lambda(람다) 사용 시 지역변수 사용하기(With. effectively final)
BackEnd/Java 2022. 12. 25. 10:40

Java 에서 Lambda 를 사용하면서 개발하던 도중 아래 에러 메시지를 보여주면서 빨간 줄이 그어져 있었다. Variable is accessed from within inner class needs to be final or effectively final 대충 직역해보면 "내부클래스(Inner Class)안에 있는 변수에 접근할 때는 그 값이 final 이나 effectively final 형태여야 한다." 이다. 원하던 로직은 Stream 을 사용해서 어떠한 값이 있는 경우 카운트를 하고 싶었다. 이 과정에서 지역변수(cnt)를 람다안에서 사용하고자 하니 위 에러가 발생하였다. int cnt = 0; memberList.stream().forEach(test -> { if(test.getTeam..

article thumbnail
[Java] Lambda 정리
BackEnd/Java 2022. 7. 16. 16:14

최근에 함수형 프로그래밍을 많이 사용하게 되면서, Java 에서도 1.8 버전부터 함수형 방식의 람다(Lambda) 형식을 제공하고 있다. 또한, Java 프로그래밍 중 종종 사용하는 Stream 연산에서도 매개변수로 함수형 인터페이스를 받도록 되어있고, 람다식은 반환값으로 함수형 인터페이스를 반환한다. 이렇게 점점 Lambda 를 자주 접하게 되어 이를 한번 정리하고자 한다. 1. 람다(Lambda)식이란? - 람다식(Lambda Expression)이란 함수를 하나의 식(Expression)으로 표현한 것. - 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류. (함수이지만 함수를 따로 만들지 않과, 코드한줄에 함수를 써서..