종류 | 람다 | 메서드 참조 |
---|---|---|
static 메서드 참조 | (x) → ClassName.method(x) | ClassName::method |
인스턴스 메서드 참조 | (obj, x) → obj.method(x) | ClassName::method |
특정 객체 인스턴스 메서드 참조 | (x) → obj.method(x) | obj::method |
클래스이름::메서드이름
Integer method(String s) { // 그저 Integer.parseInt(String s) 만 호출
return Integer.parseInt(s);
}
// -----> 람다식
Function<String, Integer> f = (String s) -> Integer.parseInt(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;
Function<Integer, int[]> f = x -> new int[x]; // 람다식
Function<Integer, int[]> f2 = int[]::new; // 메서드 참조