일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 빌드
- GIT
- gradle
- 개발자
- 프론트엔드
- 백엔드
- 트랜잭션
- Vue.js
- aop
- RequestBody
- 비동기통신
- axios
- 도커
- java version
- transaction
- vue life cycle
- Spring AOP
- 자바 버전
- maven
- docker
- git push
- RequestParam
- fetch
- github
- Java
- VUE
- PathVariable
Archives
- Today
- Total
미소의 세상
람다식 본문
예시
public interface Calc {
int plus(int x, int y);
}
public class MyClass {
public int test(Calc calc) {
int number = calc.plus(1, 2);
System.out.println("plus is "+number);
return number;
}
}
람다식을 사용하지 않은 예제1
public class Main {
public static void main(String[] args) {
MyClass myClass = new MyClass();
var sum = myClass.test(new Calc() {
@Override
public int plus(int x, int y) {
System.out.println("x: " + x + " y: " + y);
return x + y;
}
});
System.out.println();
}
}
x: 1 y: 2
plus is 3
3
아래는 람다식을 사용한 예제
public class Main {
public static void main(String[] args) {
MyClass myClass = new MyClass();
var sum = myClass.test((x, y) -> {
System.out.println("x: " + x + " y: " + y);
return x + y;
});
System.out.println(sum);
}
}
x: 1 y: 2
plus is 3
3
람다식을 사용하지 않은 예제2
public class Main {
public static void exec(Calc calc) {
int x = 1; // 2
int y = 2; // 3
int value = calc.plus(x, y); // 4 실행을 위해 아래 선언부로 이동. 6. 5에서 1 + 2 = 3 이라는 결과 받음
System.out.println(value); // 7 출력
}
public static void main(String[] args) {
exec((i, j)->{ // 1. 호출되면 exec로 이동
return i+j; // 5. 여기서 i는 위의 x, j는 y이므로 1+2 표현이 됨. 결과를 위로 반환
});
}
}
아래는 람다식을 사용한 예제
public static void main(String[] args) {
exec(Integer::sum);
}
장점
자바 8 이전의 익명 클래스에 비해 코드가 간결해짐
람다식에 개발자의 의도를 명확하게 표현할 수 있음
병렬 프로그래밍에 용이
단점
람다식을 남용하면 비슷한 함수가 중복 생성될 수 있음
재귀함수로 만들기가 까다로움
'JAVA' 카테고리의 다른 글
Java 버전별 특징 (0) | 2022.10.20 |
---|---|
Java - Optional (0) | 2022.03.04 |
Comments