본 내용은 필자가 학습한 내용을 정리하는 내용입니다. 대부분 의 내용이 아래 책의 내용이므로 원서를 구매해서 직접보시는걸 추천드립니다! RxJava 프로그래밍 리액티브 프로그래밍 기초부터 RxAndroid까지 한 번에 |
Observable의 팩토리 함수 구분
팩토리함수 | 함수 |
RxJava 1.x의 기본 팩토리 함수 | create(),just(),from() |
RxJava 2.x의 기본 팩토리 함수 | fromArray(),fromlterable(),fromCallable(),fromFuture(), fromPublisher() |
기타 팩토리 함수 | interval(),range(),timer(),defer() |
fromArray()함수
just()나 create()는 단일 데이터를 다룹니다. 그렇다면 단일 데이터가 아닐 때는 어떻게 ?
fromXXXX() 계열 함수를 허용해야합니다
fromArray함수 사용 예시
Integer[] arr={100,200,300};
Observable<Integer> source =Observable.fromArray(arr);
source.subscribe(System.out::println);
int[]배열을 사용해 명시적인 래퍼타입인 Integer[]로 코딩하지 않을때
import java.util.stream.IntStream;
import io.reactivex.Observable;
public class ObservableFromArray {
private static Integer[] toIntegerArray(int[] intArray) {
return IntStream.of(intArray).boxed().toArray(Integer[]::new);
}
public static void main(String args[]){
int[] intArray={400,500,600};
Observable<Integer> source = Observable.fromArray(toIntegerArray(intArray));
source.subscribe(System.out::println);
}
}
RxJava에서 int배열을 인식시키려면 Integer[]로 변환해야합니다
자바 8의 Stream API에서는 다음과 같은 방법을 제공합니다
private static Integer[] toIntegerArray(int[] intArray) {
return IntStream.of(intArray).boxed().toArray(Integer[]::new);
}
toIntegerArray()함수안 boxed()메서드는 int[] 배열 각각 요소를 Integer로 변환해 Integer[] 배열의스트림으로 만듭니다
toArray()메소드는 이런 스트림을 Integer[]배열로 만들어줍니다
int[]와 Integer[]의 차이 - http://includestdio.tistory.com/1
'Rx' 카테고리의 다른 글
Observable -7 (fromCallable함수) (3) | 2018.12.23 |
---|---|
Observable -6 (fromIterable함수,List,Set,BlockingQueue) (4) | 2018.12.23 |
Observable -4 (onCreate함수,람다식,자바8메소드레퍼런스,Consumer<T>) (2) | 2018.12.23 |
Observable -3 (subscribe함수와 Disposable객체) (4) | 2018.12.23 |
Observable -2 (Observable의 팩토리함수,just) (4) | 2018.12.23 |
댓글