메소드참조

람다가 익명 클래스보다 나은 점 중 가장 큰 특징은 간결함이다. 그런데 람다보다도 더 간결하게 만드는 방법이 있으니 바로 메서드 참조(method reference)이다. 아래 코드는 키가 맵안에 없다면 키와 숫자 1을 매핑하고, 이미 있다면 기존 매핑 값을 증가시킨다. map.merge(key, 1, (count, incr) -> count + incr); 깔끔해 보이지만, 매개변수인 count와 incr은 크게 하는일 없이 공간을 꽤 차지한다. (두 인수의 합을 단순히 반환하는 역할을 한다.) 자바8의 Integer 클래스는 이 람다와 같은 기능이 같은 정적 메서드 sum을 제공하기 시작했다. 따라서 위의 코드는 아래코드로 변경할 수 있다. map.merge(key, 1, Integer::sum); ..
메소드 참조(Method References) 메소드를 참조해서 매개변수 리턴타입을 알아내어 람다식에서 불필요한 매개변수를 제거하는 것이 목적 정적 메소드와 인스턴스 메소드 참조 클래스::메소드 // 정적(static) 메소드 참조 참조변수::메소드 // 인스턴스 메소드 참조 예제코드) public class Calculator { public static int staticAdd(int x, int y){ return x+y; } public int instanceAdd(int x, int y){ return x+y; } } public class MethodReferences { public static void main(String[] args) { List strList = Arrays.asLis..
깡냉쓰
'메소드참조' 태그의 글 목록