JAVA
태태개발일지 - JAVA 고급편(3) 김영한 람다
태태코
2025. 5. 5. 10:03
반응형

람다&제네릭
제네릭 사용 이유
1. 중복과 가시성
Function func1 = a -> a+3;
Function2 func2 = a -> a+2;
이와같이 람다를 만들 때 비슷하거나 같은 코드를 여러개만든다면, 중복과 가시성에 문제가 생길 수 있음
2. 람다 대입
Function func1 = a -> a+3;
#Function2 func2 = a -> a+2;
Function2 func2 = func1 (x)
아래와 같이
java 특성상 같은 값이라도 다른 자료형에 값을 대입할 수 없다.
즉
int s = 10
String w = "10"
w =s (x)
같은 값이라도 대입할 수 없기 때문이다.
제네릭&람다
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);
}
Function<String,String> func1= a -> a+ "*";
Function<String,String> func2= func1;(0)
제네릭을 사용하면, 중복된 코드를 여러개 만들어도 타입만 맞다면, 인터페이스를 여러개 만들 필요가 없다.
그리고 같은 타입끼리 대입도 가능하다.
람다 유형
Supplier<T> | T get() | T | 매개변수 없이 T 타입 값을 반환하는 람다식 |
Consumer<T> | void accept(T t) | void | T 타입 값을 받아서 소비(처리)하고 반환값이 없는 람다식 |
Function<T, R> | R apply(T t) | R | T 타입을 받아 R 타입을 반환하는 람다식 |
Predicate<T> | boolean test(T t) | boolean | T 타입을 받아 true/false를 반환하는 조건식 람다식 |
+ 입력 반환값 모두없는 Runnable도 있다. (멀티스레드에 사용)
참고하면 좋다.

반응형