람다 식 비교
Q: 람다 식을 비교할 수 있는 방법이 있나요?
A: Java 언어 사양은 람다 식을 비교하는 방법을 정의하지 않지만 구현에서 자체 비교 방법을 제공할 수 있도록 허용합니다.
구현 고려 사항
현재 람다를 구현하는 합성 클래스와 프로그램의 캡처 사이트 간의 1:1 관계입니다. 따라서 동일한 캡처 사이트에서 동일한 변수를 캡처하는 두 개의 람다 식은 동일한 인스턴스로 표시되며 참조 동일성을 사용하여 비교할 수 있습니다. 그러나 두 개의 람다 식이 서로 다른 캡처 사이트에서 동일한 변수를 캡처하거나 캡처하지 않는 경우 서로 다른 인스턴스로 표시될 수 있으며 참조 동등성을 사용하여 비교할 수 없습니다.
대안
람다 식을 비교해야 하는 경우 직렬화를 사용하는 것이 한 가지 대안입니다. 직렬화 가능한 람다는 직렬화된 형식을 사용하여 비교할 수 있습니다. 또 다른 대안은 람다 식 대신 메서드 참조를 사용하는 것입니다. 메소드 참조는 동일한 메소드를 참조하는 경우 참조 동일성을 사용하여 비교할 수 있습니다.
사람이 읽을 수 있는 출력
현재는 사람이 읽을 수 있는 문자열을 얻을 수 없습니다. 람다 식의 표현. 다만, 리플렉션을 이용하면 람다식이 참조하는 메소드명을 추출할 수 있다.
위 내용은 람다 표현식을 Java에서 비교할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!