#android #nullpointerexception #observable #rx-java #rx-java2
#Android #исключение nullpointerexception #наблюдаемый #rx-java #rx-java2
Вопрос:
В Activity :
Double[] numbers = new Double[33];
for (int i = 0; i < array.length (); i ) {
JSONObject o = array.getJSONObject ( i );
Double price = o.getDouble ( "totalprice" );
numbers[i] = price;
}
Observable<Double> observable = Observable.fromArray(numbers);
MathObservable
.sumDouble(observable)
.subscribe(new Observer<Double>() {
@Override
public void onSubscribe(Disposable d) {
Log.d( TAG,d.toString() );
}
@Override
public void onNext(Double aDouble) {
System.out.println("Sum: " aDouble);
Toast.makeText( getContext() ,aDouble "" ,Toast.LENGTH_SHORT ).show();
//if you want int convert here
}
@Override
public void onError(Throwable e) {
Log.d( TAG,e.getMessage() );
}
@Override
public void onComplete() {
Log.d( TAG,"complete");
}
});
Я хочу получить общую цену с помощью RxJava.
Но возникает ошибка :
java.lang.Исключение NullPointerException: 2-й элемент равен нулю
В массиве есть значение
число = {75.0,40.0}
Комментарии:
1. Ошибка указывает на то, что элемент с индексом 2 имеет значение null.
Ответ №1:
Вы выделяете Double
массив размером 33. Когда вы делаете это, вы получаете массив размером 33, каждый элемент которого равен null
. Таким образом, элемент в позиции 2 null
, как и любой другой элемент, за исключением элементов в позиции 0 и 1, которые вы назначаете.
RxJava2 не поддерживает null
значения в потоках, поэтому он выдает это исключение.