Super Coding Addict
Ch12. 람다식 (2) 본문
* 함수를 변수처럼 사용하는 람다식
- 변수 : 자료형에 기반하여 선언 / 매개변수로 전달 / 메서드의 반환값으로 사용
--> 람다식을 프로그램내에서 이러한 변수처럼 사용할 수 있다!
* 예제
# TestLambda 클래스
package ch12.lambda;
interface PrintString{
void showString(String str);
}
public class TestLamda {
public static void main(String[] args) {
PrintString lambdaStr = s->System.out.println(s);
lambdaStr.showString("Test");
showMyString(lambdaStr);
PrintString test = returnString();
test.showString("Test3");
}
public static void showMyString(PrintString p) { //람다식을 매개변수로 쓰기
p.showString("Test2");
}
public static PrintString returnString() {
return s->System.out.println(s + "!!!");
}
}
코드를 구체적으로 살펴보면,
# 자료형에 기반하여 선언
interface PrintString{
void showString(String str);
}
public class TestLamda {
public static void main(String[] args) {
PrintString lambdaStr = s->System.out.println(s);
lambdaStr.showString("Test");
--> 앞에서 살펴보았듯 함수형 인터페이스를 구현한 람다식으로 마치 이 람다식이 lambdaStr변수에 들어가는 변수처럼 쓰이고 있다
--> 결과값은 Test
# 람다식을 매개변수로 전달
interface PrintString{
void showString(String str);
}
public class TestLamda {
public static void main(String[] args) {
PrintString lambdaStr = s->System.out.println(s);
lambdaStr.showString("Test");
showMyString(lambdaStr);
public static void showMyString(PrintString p) { //람다식을 매개변수로 쓰기
p.showString("Test2");
}
}
--> 람다식을 자체를 매개변수로 showMyString 메서드를 호출
--> 결과값은 Test2
# 람다식을 메서드의 반환값으로 사용
interface PrintString{
void showString(String str);
}
public class TestLamda {
public static void main(String[] args) {
PrintString test = returnString();
test.showString("Test3");
}
public static PrintString returnString() {
return s->System.out.println(s + "!!!");
}
}
--> returnString메서드에서 PrintString형인 람다식을 반환
--> 반환받은 PrintString형 변수 test에서 showString메서드 호출
--> 결과값은 Test3
'JAVA 문법' 카테고리의 다른 글
Ch12. 스트림 (2) (0) | 2021.02.06 |
---|---|
Ch12. 스트림 (1) (0) | 2021.02.06 |
Ch12. 람다식 (1) (0) | 2021.02.06 |
Ch07. 상속과 다형성 (1) (0) | 2021.01.22 |
Ch06. 배열(2) (0) | 2021.01.20 |