-
Java와 일급 함수JAVA 2023. 9. 18. 18:26
일급함수
프로그래밍 언어는 해당 언어의 함수들이 다른 변수처럼 다루어질 때 일급 함수를 가진다고 합니다. 예를 들어, 일급 함수를 가진 언어에서 함수는 다른 함수들에 전달인자로 제공되고, 다른 함수에 의해 반환될 수 있으며, 변수에 값으로서 할당될 수 있습니다.
일급 객체가 되기위한 충족 조건은 세가지가 있다.
- 변수나 데이터에 할당 할 수 있어야 한다.
- 객체의 인자로 넘길 수 있어야 한다.
- 객체의 리턴값으로 리턴 할 수 있어야 한다.
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