람다식으로 메서드를 간결하게 표현할수 있다. 하지만 람다식 마저 더 간단히 표현하는 '메서드 참조' 라는게 있다.
람다식이 하나의 메서드만 호출하는 경우에만 사용 가능하다
하나의 메서드만 호출하는 람다식은
'클래스의 이름::메서드이름' 또는 '참조변수::메서드이름'으로 바꿀 수 있다.
Function<String,Integer> f = (String s) ->Integer.parseInt(s)
-> 왼쪽 좌변을 통해 입력값이 String 인걸 알수 있으니
Function<String,Integer> f = Integer::parseInt; //메서드참조
-> 이렇게 변환 가능하다.
BiFunction<String,String, Boolean> f =(s1,s2) -> s1.equals(s2);
BiFunction<String,String, Boolean> f =String::equals
Supplier<MyClass> s= ()-> new MyClass(); //람다식
Supplier<MyClass> s= MyClass::new //메서드 참조
Function<Integer,MyClass> f = (i) -> new MyClass(i); //람다식
Function<Integer,MyClass> f2 = (i) -> MyClass::new //메서드 참조