android - Rxjava static generic utility method with transformer -


recently saw rxjavaarticle explaining transformers , highlighting how used reuse schedulers. tried use , inside same class, method works fine:

<t>observable.transformer<t, t> applyschedulers() {         return new observable.transformer<t, t>() {             @override             public observable<t> call(observable<t> observable) {                 return observable                         .subscribeon(schedulers.io())                         .unsubscribeon(schedulers.io())                         .observeon(androidschedulers.mainthread());             }         };     } 

i want move helper class static method can use in whole androidapp. when try use method of class

public class rxfunctions {      public static <t>observable.transformer<t, t> applyschedulers() {         return new observable.transformer<t, t>() {             @override             public observable<t> call(observable<t> observable) {                 return observable                         .subscribeon(schedulers.io())                         .unsubscribeon(schedulers.io())                         .observeon(androidschedulers.mainthread());             }         };     } } 

inside class

public void requestloginstate() {         restclient.requestloginstate()                 .compose(rxfunctions.applyschedulers())                 .subscribe(new timbererrorsubscriber<loginstateresponse>() {                     @override                     public void oncompleted() {                     }                     ... 

it no longer recognise subscriber, error: cannot resolve method 'subscribe(anonymous com.example.util.rx.timbererrorsubscriber<com.example.network.retrofit.response.login.loginstateresponse>)'

i'm using java8without retrolambda. changing compose line to

.compose(this.<loginstateresponse> rxfunctions.applyschedulers()) 

results in error loginstate type saying reference parameters not allowed here

i'm new rxjava , grateful advice.

edit: android support java 8

you using java8 on android, android not support java8 without plugins retrolambda, i'll asume compiling java6 (since java7 works kitkat , above).

in scenario, might need make explicit parametric type of applyschedulers. believe tried when wrote this.<loginstateresponse>, work if generic method inside current class.

in case need specify type on static method call:

.compose(rxfunctions.<loginstateresponse>applyschedulers()) 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -