본문 바로가기

개발/Java2

함수형 인터페이스(Functional Interface) 함수형 인터페이스(Functional Interface) : 단 하나의 추상 메서드만 선언된 인터페이스 @FunctionalInterface interface SquareFunction() { public abstract int square(int a); } * interface의 추상메서드는 public하면서 abstract이므로 public abstract 생략 가능 * @FunctionalInterface 어노테이션은 안붙여도 상관없지만 붙이면 함수형 인터페이스 사용시 컴파일러가 두 개 이상의 추상 메서드를 만드는 것을 막아줌 함수형 인터페이스를 사용하면 람다식을 참조변수에 담아 사용할 수 있다. (단, 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야 한다) @Functio.. 2023. 7. 16.
람다식(Lambda Expression) 람다식(Lambda Expression) : 함수(메서드)를 간단한 식(expression)으로 표현하는 방법 함수 vs 메서드 근본적으로는 같지만, 함수는 클래스에 독립적이고 메서드는 클래스에 종속적이다. (클래스 밖에 메서드를 정의할 수 없다) 함수는 일반적인 용어이고 메서드는 객체지향개념 용어이다. 메서드를 람다식으로 바꾸는 방법 int square(int a) { return a * a; } 1. 반환타입과 메서드이름을 지운다. (int a) { return a * a; } 2. 매개변수 오른쪽에 화살표( → )를 추가한다 (int a) -> { return a * a; } 3. 반환값이 있는 경우, 식이나 값만 적고 return문 생략가능하다. (세미콜론도 생략가능) (int a) -> { a .. 2023. 7. 15.