我在函数中使用以下代码,因此这是我订阅的Rxjava代码的一部分。有没有办法将这段代码转换为lambda表达式?
object : Mysubscriber<MyEntry>() {
var result: MYEntry? = null
override fun onComplete() {
result?.let {
val something = Something(title = it.getField<String>(MyConstants.TITLE_KEY),
somethingImageAsset = it.getField<MyAsset>(MyConstants.IMAGE_KEY),
bodyText = it.getField<String>(MyConstants.BODY_TEXT_KEY))
view?.updateMySpace(something)
}
}
override fun onError(e: Throwable) {
Timber.e(e)
}
override fun onNext(entry: MyEntry) {
result = entry
}
}
仅供参考,以上代码的RXjava函数为:
myvar.observe(MyEntry::class.java)
.one(entryId)
.applySchedulers()
.applyOpBeforeAfter(showProgress, hideProgress)
.subscribe(
"above code" )
任何想法如何轻松地将其转换为lambda表达式?
谢谢!
答案 0 :(得分:2)
如果您正在使用Kotlin,可以这样做
val compositeDisposable = CompositeDisposable()
var result: MYEntry? = null
val disposable = myvar.observe(MyEntry::class.java)
.one(entryId)
.applySchedulers()
.applyOpBeforeAfter(showProgress, hideProgress)
.subscribeBy(
onNext = {
result = it
},
onError = {
Timber.e(e)
},
onComplete = {
result?.let {
val something = Something(title = it.getField<String>(MyConstants.TITLE_KEY),
somethingImageAsset = it.getField<MyAsset>(MyConstants.IMAGE_KEY),
bodyText = it.getField<String>(MyConstants.BODY_TEXT_KEY))
view?.updateMySpace(something)
}
}
)
compositeDisposable.add(disposable)
compositeDisposable.dispose() // Dispose it in onStop() or onDestroy()
OR
val compositeDisposable = CompositeDisposable();
var result: MYEntry? = null
val disposable = myvar.observe(MyEntry::class.java)
.one(entryId)
.applySchedulers()
.applyOpBeforeAfter(showProgress, hideProgress)
.subscribe(
{
result = it
},
{
Timber.e(e)
},
{
result?.let {
val something = Something(title = it.getField<String>(MyConstants.TITLE_KEY),
somethingImageAsset = it.getField<MyAsset>(MyConstants.IMAGE_KEY),
bodyText = it.getField<String>(MyConstants.BODY_TEXT_KEY))
view?.updateMySpace(something)
}
}
)
compositeDisposable.add(disposable)
compositeDisposable.dispose() // Dispose it in onStop() or onDestroy()
对于CompositeDisposable:
private var compositeDisposable = CompositeDisposable()
fun getCompositeDisposable(): CompositeDisposable {
if (compositeDisposable.isDisposed)
compositeDisposable = CompositeDisposable()
return compositeDisposable
}
fun addDisposable(disposable: Disposable) {
getCompositeDisposable().add(disposable)
}
fun dispose() {
getCompositeDisposable().dispose()
}
答案 1 :(得分:0)
您可以通过按Alt + Enter来实现。其余工作由IntelliJ完成。