람다 표현식의 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과 동일한 방식으로 사용될 수 있습니다.
Listnumbers = 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!