2017-02-23 1 views

답변

5

, 사용은 약간 다릅니다

Consumer<String> c = System.out::println; 

소비자가 (s)을 소요 인수는 여전히 println 메소드에 전달됩니다.

here은 이에 대한 오라클의 자습서입니다. 당신은 이런이어야 람다 식의 방법을 참조 할 수있을 때 여기

5

Consumer con = (s) -> System.out::println;

, 당신은

우리가 자바 8에 방법 참조 부르는와 System.out.println()를 호출하기 위해 노력하고 당신이 할

Consumer con = System.out::println;

은 실제로 println 메서드를 호출 s이 필요합니다. 메서드 참조가이를 처리합니다. 이 :: 연산자는 매개 변수와 함께 println 메서드를 호출하므로 이름을 지정하지 않을 것입니다.

하지만 당신은이 작업을 수행 할 때,

Consumer con2 = (s) -> {System.out.println(s);};

당신이 어떤 컴파일 오류가 발생하지 않는 기술적 있도록 명시 적으로 완벽하게 괜찮 s의 내용에 println하는 람다 식을 말하는 것입니다.