[英]translate kotlin to java
我正在使用屏幕截图库(在 Github 中),它是用 Kotlin 编写的(我不太了解 Kotlin)。
<https://github.com/bolteu/screenshotty>
我不知道如何将一部分代码翻译成 Java。 在自述文件中:
val screenshotResult = screenshotManager.makeScreenshot()
val subscription = screenshotResult.observe(
onSuccess = { processScreenshot(it) },
onError = { onMakeScreenshotFailed(it) }
)
它说您可以从“它”中获取屏幕截图对象? 我怎样才能做到这一点? 请帮我...
以及如何将此代码转换为 Java :
fun show(screenshot: Screenshot) {
val bitmap = when (screenshot) {
is ScreenshotBitmap -> screenshot.bitmap
}
screenshotPreview.setImageBitmap(bitmap)
}
it
在 lambda 中用于隐式引用其参数
所以代码片段说onSuccess()
只有一个参数,在onSuccess()
的范围内称为“it”。 类似地, onError()
只有一个参数,在该函数的作用域内称为“it”。
lambdas 的问题在于,如果您还不知道相应的函数,那么您就完全不知道it
究竟是什么。
如果我们假设在制作屏幕截图时将调用onSuccess()
那么很可能在这种情况下it
实际上可能是一个Screenshot
对象。 同样, onError()
应该叫,如果出事了,所以在这里it
可能是某种Exception
。
找出答案的一种方法是在库模块中查找ScreenshotResult
。
在这里,我们找到了observe()
的声明
fun observe(onSuccess: (Screenshot) -> Unit, onError: (Throwable) -> Unit): Subscription
现在我们知道,对于onSuccess()
, it
是一个Screenshot
而对于onError()
, it
是一个Throwable
因此,如果您实现了processScreenshot()
,您将编写一个获取Screenshot
的函数:
fun processScreenshot(screenshot: Screenshot){
// your code here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.