Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- swing
- Annotaion
- Join
- java
- InputStream
- 8bit
- 난수
- set
- 오라클
- statement
- 자바
- Transaction
- JDBC
- Serializable
- 상속
- select
- DB
- array
- 다이얼로그
- DB연동
- driver
- Connection
- 16bit
- 조회
- Reader
- stream
- transient
- 예외처리
- Oracle
- where
Archives
- Today
- Total
오버플로
[Java] Lambda식 본문
람다식(Lambda)
- JDK 1.8에서 추가된 문법
- FunctionallInterface를 편하게 사용할 수 있는 문법
> FunctionallInterface : abstract method를 하나만 가진 인터페이스
- interface를 구현한 클래스를 작성하거나, anonymous inner class를 만들지 않고 사용할 수 있는 방법
- 문법) 인터페이스명 객체명 = (매개변수,,,) -> { 코드 } ;
* interface위에 @FunctionallInterface라는 annotaion을 설정하면
해당 인터페이스는 추상 method를 반드시 하나만 가져야 함!
# 오늘의 코딩 #
- 람다식을 알아보쟈!
1) 매개변수가 없는 인터페이스
@FunctionalInterface // 추상method를 반드시 하나만 가지는 interface가 작성되어야 함
public interface TestLambda {
public void method();
// public void method1(); //error!@FunctionalInterface 가 들어가면 추상메소드가 하나여야함
}
2) 매개변수가 있는 인터페이스
@FunctionalInterface // 추상method를 반드시 하나만 가지는 interface가 작성되어야 함
public interface TestLambda2 {
//매개변수가 있는 abstract method
public void method(int i, String str);
}
3) 매개변수와 반환형이 있는 인터페이스
@FunctionalInterface // 추상method를 반드시 하나만 가지는 interface가 작성되어야 함
public interface TestLambda3 {
//매개변수와 반환형이 있는 abstract method
public String luckNum(String name);
}
4) 1,2,3 인터페이스를 사용할 class!
import java.util.Random;
/**
* 람다식의 사용
*/
public class UseLambda {
public static void main(String[] args) {
/////////// 매개변수가 없는 abstarct method////////////////
// 1. 매개변수가 없는 abstract method
TestLambda tl = () -> {
System.out.println("추상 method를 구현");
};
// 2. 호출
tl.method();
/////////// 매개변수가 있는 abstarct method////////////////
// 1. 매개변수가 있는 abstract method
TestLambda2 tl2 = (int i, String msg) -> {
System.out.println("매개변수있는 추상 method를 구현");
System.out.println("i=" + i + ",msg=" + msg);
};
// 2.호출
tl2.method(2021, "오늘은 날이 좋네요!");
/////////// 반환형이 있는 abstarct method////////////////
TestLambda3 tl3 = (String name) -> {
Random random = new Random();
int num = random.nextInt(101);
return name + "님의 행운의 번호 : " + num;
};
//호출
String msg = tl3.luckNum("동동");
System.out.println(msg);
}// main
}// class
# 출력 결과 #
-- functionallInterface의 경우에는 lambda식이 정말 편한 방법인 것 같다
'Java' 카테고리의 다른 글
[Java] charset / early return (0) | 2021.09.06 |
---|---|
[Java] ObjectStream 활용 - 객체 내보내기 & 객체 읽기 (0) | 2021.09.03 |
[Java] 직렬화(Serializable) / transient / ObjectStream / serialVersionUID (0) | 2021.09.01 |
[Java] IO Stream 활용 (2) - 파일 쓰기 (0) | 2021.08.31 |
[Java] IO Stream 활용 (1) - 파일 읽기 (0) | 2021.08.30 |
Comments