람다식이란?
함수형 프로그래밍이란 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법을 말한다.
동일한 데이터라도 함수A를 제공해서 처리하는 결과와 함수B를 제공해서 처리하는 결과는 다를 수 있다. 이것이 함수형 프로그래밍의 특징으로, 데이터 처리의 다형성이라고도 볼 수 있다.
매개변수가 없는 람다식
case 1 () -> { 실행문;}
case 2 () 실행문
person.action(() -> {
System.out.println("출근을 합니다.");
System.out.println("프로그래밍을 합니다.");
});
person.action(() -> System.out.println("퇴근합니다..");
매개변수가 있는 람다식
1.(타입 매개변수, ...) -> {
실행문;
실행문;
}
(타입 매개변수, ...) -> 실행문
2.(var 매개변수, ...) {
실행문;
실행문;
}
(var 매개변수, ...) -> 실행문
3.(매개변수, ...) -> {
실행문;
실행문;
}
(매개변수, ...) -> 실행문
매개변수가 하나일 때
매개변수 -> 실행문
이때는 타입 또는 var를 붙일 수 없다.
리턴값이 있는 람다식
(매개변수, ...) -> {
실행문;
return 값;
}
(매개변수, ...) -> 실행문;
ex person.action((x,y) -> (x + y));
메소드 참조
메소드 참조는 말 그대로 메소드를 참조해서 배개변수의 정보 및 리턴 타입을 알아내 람다식에서 불 필요한 매개변수를 제거하는 것을 목적으로 한다.
(left, ringt) -> Math.max(left, right);
Math :: max;
로 사용가능
@FuctionalInterface
public interface Calcuable{
public interface Calcuable{
double calc(double x, double y);
}
}
public class Person {
public void action(Calcuable calcuable){
double result = calcuable.calc(10, 4);
System.out.println("결과: " + result);
}
public static void main(String[] args){
Person person = new Person();
person action( Computer :: static Method );
Computer com = new Computer();
person action( com:: instanceMethod );
매개변수의 메소드 참조
(a, b) -> { a.instanceMethod(b); }
클래스 :: instanceMethod
person.ordering( String :: compareToIgnoreCase );
생성자 참조
생성자를 참조한다는 것은 객체를 생성하는 것을 의미한다. 람다식이 단순히 객체를 생성하고 리턴하도록 구성된다면 람다식을 생성자 참조로 대치할 수 있다. 다음 코드를 보면 람다식은 단순히 객체를 생성한 후 리턴만 한다
(a, b) -> { return new 클래스 (a,b) }
클래스 :: new'코딩 > 자바' 카테고리의 다른 글
| 김영한 스프링 기본편 섹션1 (2) | 2023.11.28 |
|---|---|
| 이것이 자바다 스트림 (0) | 2023.11.28 |
| 이것이 자바다 generic 정리 (1) | 2023.11.26 |
| String 메소드 자바 17 정리 (1) | 2023.11.26 |
| 스프링 버전별 정리 (0) | 2023.10.20 |