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
- 자바
- Interface
- 자바스크립트 이벤트처리
- 재귀함수
- jquery dom 계층 선택자
- char to str
- 서로소
- Java
- java Collections.sort()
- 후위표기
- 자바입출력
- 순열 재귀
- 순열코드
- 알고리즘
- java lambda
- 자바스크립트 이벤트중지
- inner class
- 재귀
- java 내부 클래스
- 조합 재귀
- str to char array
- jquery 속성선택자
- 상속
- 자바 조합 재귀
- jquery 이벤트 처리
- 알고리즘 그래프
- jquery 필터선택자
- 자바 재귀 조합
- parseInt()
- 자바 순열 코드
Archives
- Today
- Total
유블로그
[Java] Lambda 본문
- Lambda는 java 8부터 추가됨.
- method 가 하나 뿐인 인터페이스를 단순하게 표현하는데 좋다.
- @FunctionalInterface 은 해당 Interface가 한 개의 abstaract method를 가지고 있다는 의미
- Thread 에서 사용되는 Runnable, PriorityQueue 의 Comparable, Collections.sort()의 Comparator 모두 FuntionalInterface의 예이다.
(p1, p2) -> { statements; } | 기본 | |
p1 -> { statements; } | parameter 한개 | () 생략 |
(p1, p2) -> statements | statement 한개 | {} 생략 |
() -> { statements; } | no parameter | () 필수 |
p1 -> { return ... ; } | return |
interface A {
void a();
}
interface B {
void call(int v);
}
interface C {
String call(int cnt, String word);
}
public class test04 {
private static void test(C c) {
System.out.println(c.call(123, "안녕~!~!~!~!~!"));
}
public static void main(String[] args) {
{
// 람다 이용
test((cnt, word) -> word + cnt);
// 익명 클래스 이용
test(new C() {
@Override
public String call(int cnt, String word) {
return word + cnt;
}
});
}
{
C c = (cnt, word) -> { return cnt + word; };
System.out.println(c.call(3, "안녕!"));
}
{
C c = (cnt, word) -> cnt + word ;
System.out.println(c.call(1, "안녕!"));
}
{
A a = new A() {
@Override
public void a() {
System.out.println("hello");
}
};
a.a();
}
{
// A a = () -> { // 메서드 내용이 두 줄 이상이면 {} 로 묶는다.
// System.out.println("안녕~!");
// System.out.println("안녕~!!!!");
// };
A a = () -> System.out.println("안녕~!");
a.a();
}
{
B b = new B() {
@Override
public void call(int v) {
System.out.println(v);
}
};
b.call(1);
}
{
B b = v -> System.out.println(v);
b.call(2);
}
}
}
'Java' 카테고리의 다른 글
[Java] Thread (0) | 2020.08.18 |
---|---|
[Java] Concurrent vs Parallel (0) | 2020.08.18 |
[Java] XML (0) | 2020.08.13 |
[Java] Java IO (0) | 2020.08.13 |
[Java] 내부 클래스 (0) | 2020.08.12 |