Java 메서드 참조, 생성자의 메서드 참조
by 볼빵빵오춘기메소드 참조(method refernce)
클래스 이름 :: 메서드 이름
- 하나의 메서드만 호출하는 람다식은 ‘메소드 참조’로 간단히 할 수 있다.
더보기
※ 특정 객체 인스턴스메서드 참조는 잘안쓴다.
static 메서드 참조
생성자의 메서드 참조
- 생성자에 매개변수가 없는 경우
- 생성자에 매개변수가 있는 경우
- 배열과 메서드 참조
예제
예제 코드1
더보기
import java.util.function.Function;
public class Try {
public static void main(String[] args) {
// 람다식으로 작서했을 경우
// Function<String,Integer> f =(String s) -> Integer.parseInt(s);
// 위에 람다식으로 작성한 부분 주석 처리 후 메서드 참조로 변경 하면
Function<String,Integer> f = Integer::parseInt;
System.out.println(f.apply("100")+200);
}
}
예제 코드2
더보기
import java.util.function.Supplier;
public class Try {
public static void main(String[] args) {
// 람다식일 때
// Supplier<MyClass> s = () -> new MyClass();
// 메서드 참조로 변경 했을 때
Supplier<MyClass> s = MyClass::new;
MyClass mc = s.get();
System.out.println(mc);
System.out.println(s.get()); // 여기서 s.get()은 또 다른 객체가 만들어진것
}
}
class MyClass {}
예제 코드3
더보기
import java.util.function.Function;
public class Try {
public static void main(String[] args) {
// 아래클래스 몸 통 작성후 Supplier 사용 불가 따라서주석처리하고
// Supplier<MyClass> s = () -> new MyClass();
// 아래와 같이 코드 작성해주기
Function<Integer, MyClass> s = (i) -> new MyClass(i);
// Fucntion에는 get()이 아니 apply()
MyClass mc = s.apply(100);
System.out.println(mc);
System.out.println(mc.iv);
}
}
class MyClass {
int iv;
MyClass(int iv){
this.iv = iv;
}
}
예제 코드4
더보기
import java.util.function.Function;
public class Try {
public static void main(String[] args) {
// 아래클래스 몸 통 작성후 Supplier 사용 불가 따라서주석처리하고
// Supplier<MyClass> s = () -> new MyClass();
// 아래와 같이 코드 작성해주기
Function<Integer, MyClass> s = (i) -> new MyClass(i);
// Fucntion에는 get()이 아니 apply()
MyClass mc = s.apply(100);
System.out.println(mc);
System.out.println(mc.iv);
Function<Integer,int[]> s2 = (i) -> new int[i];
int[] arr = s2.apply(100);
System.out.println("arr.length : "+arr.length);
}
}
class MyClass {
int iv;
MyClass(int iv){
this.iv = iv;
}
}
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java 스트림 만들기 (1) | 2023.12.11 |
---|---|
Java 스트림(Stream), 스트림의 특징 (0) | 2023.12.11 |
Java Predicate 결합. CF와 함수형 인터페이스 (1) | 2023.12.11 |
Java java.util.function 패키지 (0) | 2023.12.11 |
Java 함수형 인터페이스 (0) | 2023.12.11 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기