람다2 [정리] 모던 자바 인 액션 - 람다 표현식 (Lambda Expression)(2) 람다 표현식이 함수형 인터페이스의 인스턴스로 동작할 수 있다고 하였는데, 실제 람다 표현식에는 이 람다가 어떤 함수형 인터페이스를 구현하고 있는지에 대한 정보가 나와있지 않다. 람다의 형식 검사, 형식 추론, 제약 람다가 어떤 함수형 인터페이스를 구현하고 있는지 직접적으로 나와 있진 않지만, 람다의 문법을 보고 람다의 형식을 추론할 수는 있다. 람다가 전달될 메서드의 파라미터, 람다가 할당되는 변수 등에서 람다 표현식의 형식을 추론해볼 수 있는데 이를 대상형식이라 한다. List heavierThan150g = filter(inventory, (Apple apple) -> apple.getWeight() > 150); 1. filter 메서드를 확인한다. 2. filter 메서드는 두 번째 파라미터로 P.. 2023. 1. 5. [정리] 모던 자바 인 액션 - 람다 표현식 (Lambda Expression)(1) 익명 클래스로 동작을 구현할 수 있었지만, 기대한만큼 깔끔한 코드가 나오진 못했다. 조금 더 깔끔하고 단순한 코드로 동작을 구현할 수 있는 자바 8의 새로운 기능 람다 표현식을 설명한다. 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라 말할 수 있다. 람다를 사용함으로써 얻는 가장 큰 이득 중 하나는 익명 클래스 등에 형식상 들어가야만 했던 코드들을 더 이상 사용하지 않아도 된다는 점이다. // lambda 적용 전 Comparator byWeight = new Comparator() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()) ; } }; // lambda 적용 후 .. 2023. 1. 4. 이전 1 다음