Skip to Content
Java에 대한 기능적 접근 방식
book

Java에 대한 기능적 접근 방식

by Ben Weidig
May 2025
Beginner to intermediate
414 pages
5h 58m
Korean
O'Reilly Media, Inc.
Book available
Content preview from Java에 대한 기능적 접근 방식

3장. JDK의 기능적 인터페이스

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

많은 함수형 프로그래밍 언어는 인수, 반환 유형 또는 실제 사용 사례에 관계없이 "함수"라는 단일하고 동적인 개념만을 사용하여 Lambda를 설명합니다. 반면에 Java는 Lambda를 포함한 모든 것에 유형이 필요한 엄격한 타입 언어입니다. 그렇기 때문에 JDK는 함수형 도구 집합을 시작하기 위해 java.util.function 패키지에 40개 이상의 즉시 사용 가능한 함수형 인터페이스를 제공하고 있습니다.

이 장에서는 가장 중요한 기능 인터페이스를 보여주고, 다양한 변형이 있는 이유를 설명하며, 코드를 더 기능적으로 확장하는 방법을 보여드립니다.

빅 4 기능적 인터페이스 카테고리

java.util.function 의 40개 이상의 기능 인터페이스는 크게 네 가지 범주로 나뉘며, 각 범주는 필수적인 기능 사용 사례를 나타냅니다:

  • 함수는 인수를 받아 결과를 반환합니다.

  • 소비자는 인수를 수락할 뿐 결과를 반환하지 않습니다.

  • 공급업체는 인수를 수락하지 않고 결과만 반환합니다.

  • 술어는 표현식에 대해 테스트할 인수를 받고 그 결과로 boolean 프리미티브를 반환합니다.

이 네 가지 범주는 다양한 사용 사례를 포괄하며, 그 이름은 기능적 인터페이스 유형 및 그 변형과 관련이 있습니다.

기능 인터페이스의 네 가지 주요 카테고리를 살펴보겠습니다.

기능

해당 java.util.function.Function<T, R> 인터페이스가 있는 함수는 가장 핵심적인 기능 인터페이스 중 하나입니다. 그림 3-1에서 볼 수 있듯이 단일 입력과 출력을 가진 "고전적인" 함수를 나타냅니다.

Function<T, R>
그림 3-1. java.util.function.Function<T, R>

Function<T, R> 의 단일 추상 메서드는 apply 이라고 하며 T 타입의 인수를 받아 R 타입의 결과를 생성합니다:

@FunctionalInterface
public interface Function<T, R> {
  R apply(T t);
}

다음 코드는 StringInteger 로 확인하고 길이를 변환하는 방법을 null 보여줍니다:

Function<String, Integer> stringLength = str -> str != null ? str.length() : 0;

Integer result = stringLength.apply("Hello, Function!");

입력 유형 T 과 출력 유형 R 은 동일할 수 있습니다. 그러나 "Function Arity "에서는 동일한 유형을 가진 특수한 기능 인터페이스 변형에 대해 설명합니다.

소비자

이름에서 알 수 있듯이, 그림 3-2와 같이 소비자는 입력 매개변수만 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

자바로 배우는 핵심 자료구조와 알고리즘: 기술 면접에 필요한 실용주의 자료구조와 알고리즘

자바로 배우는 핵심 자료구조와 알고리즘: 기술 면접에 필요한 실용주의 자료구조와 알고리즘

유동환, 앨런 B. 다우니
Java의 반응형 시스템

Java의 반응형 시스템

Clement Escoffier, Ken Finnigan

Publisher Resources

ISBN: 9798341654457Supplemental Content