[Java] Java8

Java 8

함수형 인터페이스와 람다 표현식

함수형 인터페이스

  • 추상 메서드를 하나만 가지고 있는 인터페이스
  • SAM(Single Abstract Method) 인터페이스
  • @FunctionalInterface 애노테이션을 가지고 있는 인터페이스

자바에서 기본으로 제공해주는 함수형 인터페이스

  1. Function
    • 파라미터 1개, 리턴값
    • 함수를 조합할 수 있는 메서드가 있음
      • andThen()
      • cmpose
  2. BiFunctoion
    • 파라미터 2개, 리턴값
  3. Consumer
    • 파라미터 받아서 리턴은 안하고 사용만함
  4. Supplier
    • 파라미터 X, 리턴
  5. Predication
    • 파라미터 O, boolean 리턴
  6. UnaryOperator
    • 입력값과 리턴값의 타입이 동일할 때 사용
  7. BinaryOperator
    • 입력값2개, 리턴값의 타입이 동일할 때 사용

람다 표현식

  • 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓸 수 있다
  • 코드를 줄일 수 있다
  • 메서드 매개변수, 리턴 타입, 변수로 만들어 사용 가능
  • 람다의 스코프 : 람다를 감싸고 있는 메서드
    • 로컬 클래스, 익명클래스는 개별 스코프를 가짐
  • 외부의 변수 중 final 변수 또는 실질적 final(Effective final) 변수만 람다 내에서 사용할 수 있다