从 rxjava retrolambda 表达式转换为经典
Convert from rxjava retrolambda expression to classic
我使用retrolambda表达式
_rxBus = getRxBusSingleton();
_disposables = new CompositeDisposable();
ConnectableFlowable<Object> tapEventEmitter = _rxBus.asFlowable().publish();
_disposables
.add(tapEventEmitter.subscribe(event -> {
if (event instanceof EmployeeMvvmActivity.TapEvent) {
_showTapText();
}
}));
一切正常。由于 Roboelectric 测试,我需要将 retrolambda 表达式转换为经典表达式。我试过了
_disposables.add(tapEventEmitter.subscribe(new Action1<Object>() {
@Override
public void call(Object event) {
if (event instanceof EmployeeMvvmActivity.TapEvent) {
_showTapText();
}
}
}));
我遇到无法解析方法的错误 'subscribe(anonymous rx.functions.Action1(java.lang.object)'。
当您使用 Rx2 时,Action1
来自 Rx1。相反,您必须使用 Consumer
界面。
_disposables.add(tapEventEmitter.subscribe(new Consumer<Object>() {
@Override
public void accept(Object event) {
if (event instanceof EmployeeMvvmActivity.TapEvent) {
_showTapText();
}
}
}));
我使用retrolambda表达式
_rxBus = getRxBusSingleton();
_disposables = new CompositeDisposable();
ConnectableFlowable<Object> tapEventEmitter = _rxBus.asFlowable().publish();
_disposables
.add(tapEventEmitter.subscribe(event -> {
if (event instanceof EmployeeMvvmActivity.TapEvent) {
_showTapText();
}
}));
一切正常。由于 Roboelectric 测试,我需要将 retrolambda 表达式转换为经典表达式。我试过了
_disposables.add(tapEventEmitter.subscribe(new Action1<Object>() {
@Override
public void call(Object event) {
if (event instanceof EmployeeMvvmActivity.TapEvent) {
_showTapText();
}
}
}));
我遇到无法解析方法的错误 'subscribe(anonymous rx.functions.Action1(java.lang.object)'。
当您使用 Rx2 时,Action1
来自 Rx1。相反,您必须使用 Consumer
界面。
_disposables.add(tapEventEmitter.subscribe(new Consumer<Object>() {
@Override
public void accept(Object event) {
if (event instanceof EmployeeMvvmActivity.TapEvent) {
_showTapText();
}
}
}));