더북(TheBook)

람다 표현식에서 this 키워드를 사용하면, 결국 해당 람다를 생성하는 메서드의 this 파라미터를 참조하는 결과가 된다. 예를 들어, 다음 코드를 보자.


public class Application() {

public void doWork() {

Runnable runner =

() -> { ...; System.out.println(this.toString()); ... };

...

}

}


 

표현식 this.toString()Runnable 인스턴스가 아닌, Application 객체의 toString 메서드를 호출한다. 람다 표현식에서 this 레퍼런스 사용과 관련해 특별한 점은 없다. 람다 표현식의 유효 범위는 doWork 메서드 내부에 중첩되고, 이 메서드 내부의 어느 곳에서도 this의 의미는 같다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.