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도 있다. (멀티스레드에 사용)

 

참고하면 좋다.

 

반응형