Notice
Recent Posts
Recent Comments
Link
Cronex
메서드 참조 본문
하나의 메서드만 호출하는 람다식은 메서드 참조로 간단히 할 수 있다.
종류 | 람다 | 메서드 참조 |
static메서드 참조 | (x) -> ClassName.method(x) | ClassName::method(클래스이름 ::메서드이름) |
인스턴스메서드 참조 | (obj, x) -> obj.method(x) | ClassName ::method |
특정 객체 인스턴스 메서드 참조 | (x) -> obj.method(x) | obj::method |
Integer method(String s) {
return Integer.parseInt(s);
}
int result = obj.method("123");
int result = Integer.parseInt("123");
입력 출력
Function<String, Integer> f = (String s) -> Integer.parseInt(s);
입력 타입을 알기 때문에 오른쪽 String을 뺄수 있다.
입력정보가 있기 때문에 parseInt(s) s 매개변수가 없어도 됨.
===
Function<String, Integer> f = Integer::parseInt;
생성자의 메서드 참조
Supplier<MyClass> s = () -> new MyClass();
Supplier<MyClass> s = MyClass::new
생성자에 매개변수가 있는경우
Function<Integer, MyClass> s = (i) -> new MyClass(i);
Function<Integer, MyClass> s = MyClass::new;
2개 일 때는 BiFunction<T,U,R>
배열과 메서드 참조
Function<Integer, int[]> f = x -> new int[x];
Function<Integer, int[]> f2 = int[]::new;
'JAVA > JAVA의 정석' 카테고리의 다른 글
java - Optional<T> (0) | 2021.07.22 |
---|---|
스트림 (0) | 2021.07.21 |
java- 람다식(Lambda expression) (0) | 2021.07.20 |
package와 import (0) | 2021.07.20 |
chap02 변수 (0) | 2021.06.09 |