書いているうちに不思議になったので質問させてください。
java
1Observable.range(1, 10).map(i -> { 2 if (i % 3 == 0) throw new RuntimeException(); 3 return i; 4}).subscribe(new Subscriber<String>() { 5 @Override 6 public void onCompleted() { 7 Log.d("AAA", "onComplete"); 8 } 9 10 @Override 11 public void onError(Throwable e) { 12 Log.e("AAA", "onError"); 13 } 14 15 @Override 16 public void onNext(int i) { 17 Log.d("AAA", "onNext : " + i); 18 } 19}); 20
このようなコードはラムダ式をつかって
java
1Observable.range(1, 10).map(i -> { 2 if (i % 3 == 0) throw new RuntimeException(); 3 return i; 4}).subscribe( 5 i -> { 6 Log.d("AAA", "onNext : " + i); 7 }, 8 e -> { 9 Log.e("AAA", "onError"); 10 }, 11 () -> { 12 Log.d("AAA", "onComplete"); 13 } 14);
とかけると思うのですが、この引数であるiとeはどのように判断してonErrorに対するコードとonNextに対するコードであると区別しているのでしょうか。
引数の数でonComplete()とonNext()は区別できてもonNext()とonError()はどっちのオーバーライドなのか判断できないと思うのですが、引数名で判断しているのですか?
どのようにiはonNext()の引数、eはonError()の引数という判断をしているのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/14 15:56