Java의 메소드 참조 구문은 메소드를 참조하는 간결하고 읽기 쉬운 방법을 제공합니다. 주어진 예에서 메서드 참조 System.out::println은 forEach 메서드에 대한 인수로 사용됩니다.
메서드 참조 이해
메서드 참조 시스템 .out::println은 System.out에서 참조하는 개체를 사용하여 println 메서드를 호출해야 함을 나타냅니다. 이 경우 System.out은 System 클래스의 정적 멤버이며 표준 출력 스트림을 나타냅니다.
Lambda Expression Equivalent
System에 해당하는 람다 식입니다. out::println은 다음과 같습니다.
<code class="java">o -> System.out.println(o)</code>
이 람다 식은 System.out을 먼저 평가하여 평가된 값을 캡처한 다음 람다 함수를 만듭니다. 이 람다 함수는 o 인수를 취하고 캡처된 System.out 객체에서 println 메서드를 호출하여 o 값을 표준 출력에 인쇄합니다.
정확한 등가 람다 표현식
그러나 System.out::println과 정확히 동일하려면 다음 단계가 필요하다는 점에 주목할 가치가 있습니다.
평가된 System.out 개체를 변수에 저장:
<code class="java">PrintStream p = Objects.requireNonNull(System.out);</code>
람다 표현식에 저장된 변수 사용:
<code class="java">numbers.forEach(o -> p.println(o));</code>
이와 정확히 동일하면 System.out에 대한 변경 사항이 영향을 미치지 않습니다. 람다 표현식의 동작.
위 내용은 System.out::println에 해당하는 람다 표현식은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!