>Java >java지도 시간 >System.out::println 메소드 참조에 해당하는 람다 표현식은 무엇입니까?

System.out::println 메소드 참조에 해당하는 람다 표현식은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-04 06:26:02913검색

What is the lambda expression equivalent to the System.out::println method reference?

람다 표현식의 System.out::println 메서드 참조와 동일

Java에서 메서드 참조 System.out::println은 다음을 허용합니다. System.out.println() 메서드를 참조하는 간결한 방법입니다. System.out을 평가하고 이를 변수에 할당합니다.

질문:

동일한 동작을 제공하는 System.out::println에 해당하는 람다 식은 무엇입니까? ?

답변:

정확히 동등한 람다 식은 다음과 같습니다.

num -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(num);
}

이 람다 식은 System.out에 대한 참조를 캡처합니다. println 메소드를 실행하기 전에 변수 p를 사용하세요. 이렇게 하면 System.out에 대한 변경 사항이 람다 식의 동작에 영향을 주지 않습니다.

간단한 람다 식과의 차이점:

num -> System.out.println(num)은 호출될 때마다 System.out을 평가하므로 람다가 실행되는 동안 System.out의 변경 사항에 취약해집니다.

사용법:

동등한 람다 표현식은 다음과 같이 System.out::println과 동일한 방식으로 사용될 수 있습니다.

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
numbers.forEach(num -> {
    PrintStream p = Objects.requireNonNull(System.out);
    p.println(num);
});

이 코드는 목록의 숫자를 콘솔에 인쇄합니다.

위 내용은 System.out::println 메소드 참조에 해당하는 람다 표현식은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.