자바 메소드를 간결한 함수 식으로 표현한 것
형태 :
() -> {};
특징
- 람다는 인터페이스로 만든다
- 인터페이스 메서드는 하나만 존재해야 한다
- 메서드가 인터페이스를 매개변수로 받고 있으면, 행위 보내기
- 람다는 매개변수 타입 생략 가능
- @FunctionalInterface(런타임) 표시가능
예시 코드
- 소비자
MyConsumer
입력만 받고 출력이 없는 연산을 수행
public interface MyConsumer<T> {
void accept(T date);
}
MyFunction
입력을 받아서 결과를 반환 -return, 매개변수 있다 입력값 T를 받아 결과값 R을 반환
public interface MyFunction<T, R> {
R apply(T t); // return값은 사용자가 지정
}
- 조건평가
MyPredicate
조건의 참/거짓을 반환하는 인터페이스
public interface MyPredicate<T> {
boolean apply(T t);
- 공급자
Supplier
입력없이 값을 반환. 반환된 값은 소비자(=나 =호출자)가 사용
@FunctionalInterface // 메서드 2개시 에러
public interface MySupplier<T> {
T get();
}
응용코드
public class App {
public static void main(String[] args) {
// 값이 없으면 괄호(매개변수)가 있어야 한다
// 예) 값 없을 때: () -> {}
MyConsumer<Integer> r1 = (Integer date) -> {
System.out.println("소비할 데이터 : " + date);
};
r1.accept(1);
// MySupplier<String> r2 = () -> {return "good";};
MySupplier<String> r3 = () -> "good"; // 람다표현식 -중괄호 생략 가능
String msg = r3.get();
System.out.println(msg);
}
}
출력

Share article