자바8 - 메소드 레퍼런스
메소드 레퍼런스
람다가 하는 일이 기존 메소드 또는 생성자를 호출하는 거라면, 메소드 레퍼런스를 사용해서 매운 간결하게 표현할 수 있다.
메소드 참조하는 방법
스태틱 메소드 참조 | 타입:: 스태틱 메소드 |
특정 객체의 인스턴스 메소드 참조 | 객체 레퍼런스:: 인스턴스 메소드 |
임의 객체의 인스턴스 메소드 참조 | 타입:: 인스턴스 메소드 |
생성자 참조 | 타입:: new |
- 메소드 또는 생성자의 매개변수로 람다의 입력값을 받는다.
- 리턴값 또는 생성한 객체는 람다의 리턴값이다.
// 생성자 참조
Supplier<Greeting> newGreeting = Greeting::new;
// 위의 식을 썼다고 Gretting 객체가 생기는 것이 아니다.
Greeting greeting2 = newGreeting.get();
// 위와 같이 get() 함수를 사용해야 Greeting 객체를 만들 수 있다.
// 생성자 참조
Function<String, Greeting> hyunsikGreeting = Greeting::new;
Greeting hyunsik = hyunsikGreeting.apply("hyunsik");
// 스태틱 메소드 참조
UnaryOperator<String> hi = Greeting::hi;
String hiHyunsik = hi.apply("hyunsik");
// 특정 객체의 인스턴스 메소드 참조
Greeting greeting = new Greeting();
UnaryOperator<String> hello = greeting::hello;
String hi2Hyunsik = hello.apply("hyunsik");
// 임의 객체(불특성 다수)의 인스턴스 메소드 참조
String[] names = {"hyunsik", "aaa", "bbb"};
Arrays.sort(names, String::compareToIgnoreCase);
System.out.println(Arrays.toString(names));
Author And Source
이 문제에 관하여(자바8 - 메소드 레퍼런스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyun6ik/자바8-메소드-레퍼런스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)