[英]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.