람다 표현식에서 this 키워드를 사용하면, 결국 해당 람다를 생성하는 메서드의 this 파라미터를 참조하는 결과가 된다. 예를 들어, 다음 코드를 보자.
public class Application() {
public void doWork() {
Runnable runner =
() -> { ...; System.out.println(this.toString()); ... };
...
}
}
표현식 this.toString()은 Runnable 인스턴스가 아닌, Application 객체의 toString 메서드를 호출한다. 람다 표현식에서 this 레퍼런스 사용과 관련해 특별한 점은 없다. 람다 표현식의 유효 범위는 doWork 메서드 내부에 중첩되고, 이 메서드 내부의 어느 곳에서도 this의 의미는 같다.