채널톡 아이콘

인프런 커뮤니티 질문&답변

parkht님의 프로필 이미지

작성한 질문수 20

Kevin의 알기 쉬운 RxJava 1부

리액티브 연산자 개요 및 생성 연산자

CarRepairShop에 대한 예제 코드를 볼 수 있을까요?

작성

·

146

0

안녕하세요.

먼저 RxJava에 개념을 잡는데 좋은 강의를 해주셔서 감사합니다. 많은 도움이 되고 있습니다.

혹시 CarRepairShop에서 Future를 리턴하는 getCarRepairCostAsync 메서드에 코드를 확인할 수 있을까요?

Future를 사용해본적이 없어서요...ㅠ

확인 부탁드립니다.

답변 1

0

Kevin님의 프로필 이미지
Kevin
지식공유자

안녕하세요? CarRepairShop 클래스의 소스 코드는 아래와 같습니다.

public class CarRepairShop {
public int getCarRepairCostSync(int brokens) {
return calculateCarRepair(brokens);
}

public Future<Integer> getCarRepairCostAsync(int brokens) {
return CompletableFuture.supplyAsync(
() -> calculateCarRepair(brokens));
}

private int calculateCarRepair(int brokens){
Logger.log(LogType.PRINT,
"# 차량 수리비 계산 중................");
delay();
return brokens * 20000;
}

private void delay(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

여기서 getCarRepairCostAsync() 의 메서드 body 코드를 확인하실 수 있습니다. 보시다시피 java.util.concurrent 패키지내의 CompletableFuture 를 사용해서 Future를 반환하는것을 볼 수 있습니다.

충분한 답변이 되셨나 모르겠네요.

위 소스 코드는 제가 제공하는 github 소스 코드에서도 확인하실 수 있습니다.

감사합니다.