[이것이 자바다] 16장 정리

이 포스트는 자바에서 람다식을 이용하는 방법과 함수형 프로그래밍의 기초를 설명합니다. 람다식은 익명 구현 객체로 변환되며, 함수형 인터페이스는 단 하나의 추상 메소드를 가져야 합니다. 또한, 메소드 참조를 이용하면 코드의 가독성을 높일 수 있으며, 인스턴스 메소드의 경우 객체 생성 후 참조 변수 뒤에 :: 기호를 붙이고 메소드 이름을 기술합니다.
Jan 19, 2024
[이것이 자바다] 16장 정리

Workable.java

package ch16; @FunctionalInterface public interface Workable { void work(); }

Person.java

package ch16; public class Person { public void action(Workable workable) { workable.work(); } }

PersonExam.java

package ch16; public class PersonExam { public static void main(String[] args) { Person person = new Person(); person.action(() -> { // 매개변수가 없는 람다식 System.out.println("출근을 합니다."); System.out.println("프로그래밍을 합니다."); }); person.action(() -> System.out.println("퇴근을 합니다.")); // 만약 return문을 포함해 실행문이 한줄이라면 {}를 생략할 수 있다. } }
 

핵심 키워드

  • 자바는 람다식을 익명 구현 객체로 변환한다.
  • 인터페이스가 익명 구현 객체를 람다식으로 표현하려면 인터페이스가 단 하나의 추상 메소드만 가져야 한다.
  • 인터페이스가 함수형 인터페이스임을 보장하기 위해서는 @FunctionalInterface 어노테이션을 붙이면 된다.
 

Calculable.java

package ch16; @FunctionalInterface public interface Calculable { double calculate(double x, double y); }

Creatable.java

package ch16; @FunctionalInterface public interface Creatable { Computer create(); }

Computer.java

package ch16; public class Computer { public double instanceMethod(double x, double y) { return x + y; } }

LambdaExam.java

package ch16; public class LambdaExam { public static void main(String[] args) { // Computer com = new Computer(); // // action(5.0, 5.0, Math::pow); // 메소드 참조 방식 // action(10.0, 5.0, (x, y) -> Math.pow(x, y)); // // action(3.0, 3.5, com::instanceMethod); // action(3.0, 3.5, (x, y) -> { // return com.instanceMethod(x, y); // }); // Computer com = get(() -> new Computer()); Computer com = get(Computer::new); } public static void action(double x, double y, Calculable calculable) { System.out.println("calculate 메소드 실행"); System.out.println(calculable.calculate(x, y)); System.out.println("calculate 메소드 종료"); } public static Computer get(Creatable creatable) { return creatable.create(); } }
 

핵심 키워드

  • 메소드 참조는 메소드를 참조해서 매개변수의 정보 및 리턴 타입을 알아해 람다식에서 불필요한 매개변수를 제거하는 것을 목적으로 한다.
  • 람다식은 단순히 값을 메소드의 매개값으로 전달하는 역할만 하기 때문에 메소드 참조를 이용하면 코드의 가독성을 높일 수 있다.
  • 만약 인스턴스 메소드일 경우에는 먼저 객체를 생성한 다음 참조 변수 뒤에 :: 기호를 붙이고 인스턴스 메소드 이름을 기술한다.
 

결론

해당 코드들을 통해 함수형 프로그래밍의 기초와 람다식을 사용하는 법을 익힐 수 있었다.
Share article

More articles

See more posts
RSSPowered by inblog