개요
추상 메서드 한개만 갖는 인터페이스
사용 목적
람다식 사용하기 위해
주요 인터페이스
ㅇㅇ
Lambda
기본형
(left,right) -> Math.max(left,right);
메서드 참조
public class Calculator {
public static int staticMethod(int x, int y) {
return x + y;
}
public int instanceMethod(int x, int y) {
return x * y;
}
}
//정적 메서드 참조
IntBinaryOperator operator;
operator = Calculator::staticMethod;
System.out.println(operator.applyAsInt(3,5));
//인스턴스 메서드 참조
Calculator cal = new Calculator();
operator = cal::instanceMethod;
System.out.println(operator.applyAsInt(3,5));
생성자 참조
public class Member{
private String name;
private String id;
public Member(){
System.out.println("Member() 실행");
}
public Member(String id){
this.id = id;
System.out.println("Member(String id) 실행");
}
public Member(String name, String id) {
System.out.println("Member(String name, String id) 실행");
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
}
}
public class ConstructorRef {
public static void main(String[] args) throws Exception {
Function<String, Member> function1 = Member::new;
Member member1 = function1.apply("kimcoding");
BiFunction<String, String, Member> function2 = Member::new;
Member member2 = function2.apply("kimcoding", "김코딩");
}
}
'Language > Java' 카테고리의 다른 글
Stream 생성 방법 (0) | 2022.07.18 |
---|---|
자료형 변환(작성중) (0) | 2022.07.15 |
[Collection] Map.Entry의 사용(작성중) (0) | 2022.07.15 |