-
람다식(2) / 메소드 참조프로그래밍/JAVA 자바 2021. 9. 10.반응형package lambdaEx;public class Ex101_MethodReference {public static String convert(Integer num, Conversion f) {return f.convert(num);}public static void main(String[] args) {// 메소드 참조// 정수를 문자열로 변환// Conversion c = (n) -> {return String.valueOf(n);};Conversion c = n -> String.valueOf(n);String s = c.convert(100);System.out.println(s);Conversion c2 = String::valueOf;s = c2.convert(200);System.out.println(s);}}interface Conversion {public String convert(Integer num);}
- String.valueOf(n) 을 String::valueOf 로 바꾼게 메소드 참조이다.
package lambdaEx;import java.util.function.Supplier;public class Ex102_ConstructorReference {public static void main(String[] args) {// Supplier = 매개변수가 없고 리턴값이 있는 추상 메소드// 람다식Supplier<Object> o1 = () -> new Object();Object ob1 = o1.get();System.out.println(ob1);// 생성자 메소드 참조Supplier<Object> o2 = Object::new;Object ob2 = o2.get();System.out.println(ob2);}}- 매개변수가 없고 리턴값이 있는 추상 메소드를 참조 해보자.
- 람다식으로 표현 먼저 해보면 Supplier<Object> << 매개변수 없고 리턴값 있는 추상 메소드를 가진 인터페이스
- 객체 생성하고 바로 람다식으로 매개변수 없으니까 () 괄호 열어주고 생성자를 호출 한다.
- () -> new Object() << 람다로 생성자 호출 하는 법
이걸 람다식이 아니라 메소드 참조로 바꾸면
- Object::new 하나로 끝난다. << 메소드 참조로 생성자 호출 하는 법
package lambdaEx;import java.util.function.BiFunction;public class Ex103_InstanceReference {public static void main(String[] args) {// 람다식// Bifunction<T,U,R> : 두개의 매개변수 T,U과 리턴값 R이 있는 추상 메소드BiFunction<String, String, Boolean> f1 = (s1, s2) -> s1.equals(s2);Boolean b1 = f1.apply("java", "java");System.out.println(b1);// 인스턴스 메소드 참조BiFunction<String, String, Boolean> f2 = String::equals;Boolean b2 = f2.apply("java", "java");System.out.println(b2);}}- 인스턴스 메소드 참조 해보기
반응형'프로그래밍 > JAVA 자바' 카테고리의 다른 글
자바 - 특수 문자 출력 하는 2가지 방법 (0) 2024.04.28 자바 / 스트림 Stream (0) 2021.09.12 자바 람다식(1) 개념 (0) 2021.09.10 어노테이션 (Annotation) (0) 2021.09.09 자바 네트워크(3) / 숫자 야구 게임 (0) 2021.09.09