ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java와 일급 함수
    JAVA 2023. 9. 18. 18:26

    일급함수

    프로그래밍 언어는 해당 언어의 함수들이 다른 변수처럼 다루어질 때 일급 함수를 가진다고 합니다. 예를 들어, 일급 함수를 가진 언어에서 함수는 다른 함수들에 전달인자로 제공되고, 다른 함수에 의해 반환될 수 있으며, 변수에 값으로서 할당될 수 있습니다.

    일급 객체가 되기위한 충족 조건은 세가지가 있다.

    1. 변수나 데이터에 할당 할 수 있어야 한다.
    2. 객체의 인자로 넘길 수 있어야 한다.
    3. 객체의 리턴값으로 리턴 할 수 있어야 한다.

    Java 에서는 위의 조건을 충족하지 않지만, 람다식을 이용하여 함수의 매개변수로 전달 할 수 있다.

     

    함수형 인터페이와 람다

    구현해야 할 abstract method를 하나만 갖고 있는 인터페이스를 함수형 인터페이스라고 한다. @FunctionalInterface 어노테이션을 붙여준다. default 또는 static method는 존재해도 된다.

    @FunctionalInterface
    public interface PlusCalc <T extends Number>{
        T plus(T x, T y);
    }
    
    public class FuncInterface {
    
        public static void main(String[] args) {
            PlusCalc<Integer> plusInt = (a, b) -> a + b;
            System.out.println(plusInt.plus(1,2));
        }
    }

    함수형 인터페이스를 이용하여 람다식으로 표현해 보았다. 자바는 함수를 일급 객체로 취급하지 않지만 함수형 인터페이스를 통해 마치 변수에 함수를 할당하듯 표현이 가능하다.

    'JAVA' 카테고리의 다른 글

    Spring Boot MessageConverter  (0) 2024.06.24
    Java mutable 과 immutable  (1) 2023.10.08
    Java Generic Compile 동작  (0) 2023.09.11
    JVM Memory Area  (0) 2023.09.08
    Java 버전 별 ArrayList add 동작  (0) 2023.09.06
Designed by Tistory.