본문 바로가기
Software Development/Java

System.out::println (메서드 레퍼런스란?)

by 닉쿤 2017. 7. 16.

RxJava reference 문서를 보며 hello world를 따라 해보고 있는데 신기한 것을 발견했다.


System.out::println


:: <--- 이것은 메서드참조라고 불리는 일종의 syntactic sugar 였다.



List<Integer> numbers = Arrays.asList(1, 2, 4, 8, 16, 32);
numbers.forEach(System.out::println);
1) numbers.forEach(x -> System.out.println(x));
이렇게 풀어서 쓸수도 있는데, 굳이 루프를 돌때마다 println을 실행하기 위해 X라는 이름이 필요하진 않다.
2) numbers.forEach(System.out::println);
"::" 연산자는 개발자가 println 메서드를 이름을 명시하지 않은 파라미터와 함께 사용할 것이라는 것을 나타낸다.

좀 더 깊은 내용을 원하시는 분을 위해

Java document 위치를 아래에 남긴다.


https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html

댓글