java 함수형 프로그래밍 예제

이 예제에서는 미리 정의된 기능 인터페이스, 컬렉션 및 스트림에 대한 여러 Junit 테스트를 포함하는 Maven 프로젝트로 구성됩니다. 또한 기능적 프로그래밍 스타일을 통해 연락처를 로그인 사용자로 변환하는 실제 응용 프로그램이 포함되어 있습니다. 함수형 프로그래밍에서 함수는 다른 함수의 인수일 수 있습니다! 그게 얼마나 멋지죠? 목록의 모든 수에 1을 추가하는 함수를 생각해보십시오. 그 객체 의 지향을 어떻게 하시겠습니까? 다음은 스니펫입니다: Java 8은 Java 개발자에게 람다 식을 사용하여 함수형 프로그래밍을 도입했습니다. 이 Java 릴리스는 개발자에게 더 이상 필수적이고 객체 지향적인 관점에서만 Java 프로그래밍에 대해 생각하기에 충분하지 않다는 것을 효과적으로 알렸습니다. Java 개발자는 선언적 기능 패러다임을 사용하여 생각하고 코딩할 수 있어야 합니다. Java에서 개체 지향 및 함수형 프로그래밍을 성공적으로 혼합하기 위해 기능 원칙을 채택할 경우, 그 원리가 무엇인지 더 잘 알 수 있었습니다. 기능 언어의 핵심 기능은 무엇입니까? 3. 구현이 다른 스트림에 따라 달라지는 스트림 API 및 기존 Java 생태계와 원활하게 결합합니다. 다시 말하지만, 우리는 실제로 BiFunction라는 자바에서 정의 된 동등한 인터페이스가 있기 때문에 TakeTwo를 정의 할 필요가 없습니다. 그것을 사용 하 여 우리는 다음과 같은 방법으로 합계를 작성할 수 있습니다.

처음에는 람다 식을 Java에서 함수형 프로그래밍을 지원하는 방법으로 생각할 수 있습니다. 함수형 프로그래밍은 함수선언, 함수를 인수로 전달하고 함수를 문(Java8에서 식이라고 함)으로 사용하여 프로그래밍할 수 있는 패러다임입니다. 람다 식이라고 불리는 이유에 대해 자세히 알고 싶다면 람다 미적분학이 무엇인지 이해하려고 노력할 수 있습니다. 이전에 Java에서 함수형 프로그래밍을 사용한 적이 없다면 null이 Java 8에서 문제를 줄 때마다 선택 사항으로 이동하여 잠재적으로 비어있는 매직 박스에 변환 함수를 적용하는 것을 주저하지 마십시오. 클린 코드 규칙은 다음과 같은 대상이 됩니다. 대신 함수가 호출자에게 반환 값이 없을 수 있음을 알리려고 할 때마다 Optional을 반환합니다. Java 8은 기본 데이터 형식에 대한 몇 가지 편리한 FI를 제공합니다: IntFunction, DoubleFunctionFunction, IntToLongFunction, DoubleToIntFunction, DoubleToLongFunction, LongToDoubleFunction 및 LongToIntFunction.