자바

Supplier 콜백

sdafdq 2023. 12. 4. 19:58

뭐 정확히는 콜백이 아니라고 하는데, 콜백처럼 사용이 된다.

.get()하면 실행된다.

 

이름처럼 뭔가 공급자, 직접적인 값이 아니라 값을 공급해주는 공급자.

 

콜백을 인자로 받을 수 있게 해 준다.

Supplier<콜백의반환타입>

 

private BooleanBuilder nullSafeBuilder(Supplier<BooleanExpression> f){
    try {
        return new BooleanBuilder(f.get());
    }catch (IllegalArgumentException e){
        return new BooleanBuilder();
    }
}

이렇게 콜백의 실행 타이밍을 늦출 수 있다!

f.get()하면 실행 된다.

 

private BooleanBuilder ageGoe(Integer ageGoe){
    return nullSafeBuilder(()->{return member.age.goe(ageGoe);});
}
private BooleanBuilder ageLoe(Integer ageLoe){
    return nullSafeBuilder(() -> member.age.loe(ageLoe));
}

 

 

참고로 이 예시는 불완전한 점이 있다.

https://qwefdg3.tistory.com/942

 

이걸 참고해라.

eq는 괜찮지만, like 등은 안된다.

'자바' 카테고리의 다른 글

템플릿  (0) 2023.12.05