inflearn logo
강의

Course

Instructor

Kevin's Easy RxJava Part 1

Utility Operator

concatEager( ) 연산자에 관하여

Resolved

318

easyvvon

30 asked

0

안녕하세요,

해당 강의에서 materialize / dematerialize 파트에서 언급된 concatEager( ) 연산자에 알아보면서 어떻게 사용해야하는 것인지 정확히 알고 싶습니다.

- Observable.java (concat 연산자)

@CheckReturnValue
@NonNull
@SchedulerSupport(SchedulerSupport.NONE)
public static <T> Observable<T> concat(ObservableSource<? extends T> source1, ObservableSource<? extends T> source2) {
ObjectHelper.requireNonNull(source1, "source1 is null");
ObjectHelper.requireNonNull(source2, "source2 is null");
return concatArray(source1, source2);
}

- Observable.java (concatEager 연산자)

@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public static <T> Observable<T> concatEager(ObservableSource<? extends ObservableSource<? extends T>> sources) {
return concatEager(sources, bufferSize(), bufferSize());
}

위 API 소스를 보다시피 concatEager의 파라미터는 'ObservableSource<? extends ObservableSource<? extends T>>' 타입을 넣어야 한다고 명시가 되어있는데요,

저 모양이 예제 'ObservableMaterialExample02.java'처럼 Observable.just( ... )의 파라미터에 Observable 넣어야하는 형태인건가요?

저런 타입이 어떠한 모양인지 감이 안잡혀서 여쭤봅니다.

RxJava Reactive-Streams Reactive Programming 함수형-프로그래밍

Answer 1

0

Kevin

"위 API 소스를 보다시피 concatEager의 파라미터는 'ObservableSource<? extends ObservableSource<? extends T>>' 타입을 넣어야 한다고 명시가 되어있는데요,

저 모양이 예제 'ObservableMaterialExample02.java'처럼 Observable.just( ... )의 파라미터에 Observable 넣어야하는 형태인건가요?"

--> 네, 맞습니다. "ObservableSource<? extends ObservableSource<? extends T>>" 바깥쪽에 있는 ObservableSource(빨간색)가 Observable.just()이구요. 이 ObservableSource의 파라미터는 ObservableSource의 하위 자료형이어야 한다고 한정적 제너릭으로 명시가 되어 있는것을 볼 수 있습니다.(아래 빨간색 하일라이팅 부분) 

"ObservableSource<? extends ObservableSource<? extends T>>"

그리고, "ObservableSource<? extends ObservableSource<? extends T>>" 그리고 이 부분은 Observable.just( ) 안에 파라미터로 입력되는 각각의 Observable 들의 파라미터(통지하는 데이터)들을 T 타입의 하위 자료형으로 제한을 하고 있습니다. 여기서는 각각 String 타입의 데이터를 통지를 하고 있구요.

이건 RxJava와는 별개로 Java의 제너릭에 대한 문법에 대한 헷갈림인데 제너릭에 대해서 조금 더 살펴보시면 이해가 되실 것 같습니다.

0

easyvvon

아 처음에는 저 '? extends ObservableSource' 부분 때문에 헷갈렸는데,

'?'에 ObservableSource을 상속받은 Observable 객체을 대입해서 생각해보니 이제야 이해가 되네요;

항상 친절한 답변 감사합니다!

Single과 관련해 여쭤보고 싶은 부분이 있습니다!

0

264

2

cold/hot publisher 예제 코드와 관련해 질문 드립니다.

0

363

1

CompletableObserver 클래스의 람다식 표현관련

0

297

1

1강에 예시로 보여주신 ToDoSample 코드에 관해 질문 드립니다!

0

356

1

데이터 결합 연산자 / merge 관련 질문

0

445

1

DROP 배압 전략에 관한 궁금증

0

300

2

map에서의 TimeUtil.sleep에 관한 궁금점

0

216

1

강의 내용을 정리해서 개인 블로그에 올려도 될까요?

0

562

2

TimeUtil.sleep 관련 질문

0

286

1

배압 전략 중에서 DROP 전략과 관련해서 질문 있습니다.

0

335

1

Error 발생 시에도 계속 처리 방법

0

689

2

선언형 프로그래밍과 명령형 프로그래밍

1

784

2

첫번째 강의 부터 이번강의까지 수강하면서 궁금한점 질문드립니다.

0

325

1

안녕하세요. 질문이 있습니다.

1

354

1

logger 가 없는데 util 폴더도 같이 갖다놔야 하나요?

0

327

1

amb 연산자

0

233

1

질문 드립니다.

0

219

1

Reactive Streams의 구성요소들과 RxJava의 구성요소들의 관계?

1

397

2

ObservableSequenceEqualExample.java 예제의 delay( ) 연산자 질문있습니다

0

309

3

defer( ), fromFuture( )도 just( )처럼 여러 인자 값을 받을 수 있는지 궁금합니다.

0

264

3

flatMapSingle() 메소드에 대하여

0

620

6

fromFuture() vs fromCallable() 생성 연산자에 대해

0

573

2

함수형 인터페이스 Comparator에 대해

0

397

2

Publisher와 Subscriber 간의 프로세스 흐름에 대한 질문

1

340

3