고구마와 감자
Amor DevFati(아모르 개발파티)
고구마와 감자
전체 방문자
오늘
어제
  • 분류 전체보기
    • 스프링
    • 알고리즘
      • 백준
      • 프로그래머스
      • 인프런_자바코테강의
      • 리트코드
      • 해커랭크
      • 코드업
      • 이것저것
    • 자바
    • GIT
    • 파이썬
    • 개발이론
    • JPA
    • 김영한 강의
      • 모든 개발자를 위한 HTTP 웹 기본 지식
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • 일기 및 아무말 적기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 전투 드로이드 가격
  • 14656
  • 11966
  • 10409
  • Mini Fantasy War
  • 더하기 3
  • 2921
  • 5361
  • 5988
  • 꼬리를 무는 숫자 나열
  • 남욱이의 닭장
  • 2857
  • 홀수일까 짝수일까
  • 1598
  • 16673
  • 백준
  • 2의 제곱인가
  • 고려대학교에는 공식 와인이 있다
  • 조교는 새디스트야!!
  • 11023

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
고구마와 감자

Amor DevFati(아모르 개발파티)

자바

함수형 인터페이스

2022. 3. 4. 22:09

# 자바의 정석 유튜브 영상을 보면서 정리하며 학습하였습니다. 

 

함수형 인터페이스 - 단 하나의 추상 메서드만 선언된 인터페이스 

@FunctionalInterface // 함수형 인터페이스는 단 하나의 추상 메서드만 가져야 함.
public interface MyFunction {
    int max(int a, int b);
    // public abstract는 생략 가능함.
    // 인터페이스의 모든 메소드는 public 이면서 동시에 abstract이다.
}

 

익명클래스의 선언, 객체 생성을 동시에 함 

 MyFunction f = (a, b) -> a > b ?> a : b;

// MyFunction에 max()가 있음 
int value = f.max(3,5);  // 실제로는 람다식(익명 함수) 이 호출됨

▶ 함수형 인터페이스 타입의 참조변수로 람다식을 참조할 수 있음

 단, 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야 함. 

 

 

▶ 함수형 인터페이스 타입의 매개변수

void aMethod(MyFunction f) {
	f.myMethod(); // MyFunction에 정의된 메서드 호출
}
MyFunction f = () -> System.out.println("myMethod()");
aMethod(f);
aMethod(() -> System.out.println("myMethod()"));

 

▶ 함수형 인터페이스 타입의 반환타입

MyFunction myMethod() {
	MyFunction f = () -> {};
    return f;
}
MyFunction myMethod() {
	return () -> {};
}

 

'자바' 카테고리의 다른 글

인터페이스가 가지는 객체지향 특징  (0) 2023.10.21
객체 지향의 특징 4가지  (0) 2023.10.20
자바의 변성 - 공변/무공변/반공변  (0) 2022.03.23
Comparable  (0) 2022.02.28
클래스간의 관계  (0) 2022.02.22
    '자바' 카테고리의 다른 글
    • 객체 지향의 특징 4가지
    • 자바의 변성 - 공변/무공변/반공변
    • Comparable
    • 클래스간의 관계
    고구마와 감자
    고구마와 감자
    Amor DevFati는 김연자-Amor Fati에 Development(개발)의 Dev 를 첨가하여 만든 이름

    티스토리툴바