用函数参数替换重复的代码

时间:2017-11-20 13:42:25

标签: kotlin

我有以下代码,其中包含大量重复...

{{1}}

我想通过一个函数来实现很多这种重复,这个函数在函数rotateBitmap changeBitmapContrast等中传递另一个函数,它应该在BitmapHelper中调用它并返回位图

如何更改代码才能完成此操作?

2 个答案:

答案 0 :(得分:1)

我能够通过以下方式实现这一目标..

    private fun applyBitmapOperation(predicate: KFunction2<@ParameterName(name = "bitmap") Bitmap, @ParameterName(name = "changeAmount") Float, Bitmap>, changeAmount: Float) {
    val bitmap = capturedReceiptImageView.bitmap

    val bitmapChanged = predicate.invoke(bitmap, changeAmount)

    capturedReceiptImageView.setImageBitmap(bitmapChanged)
    capturedReceiptImageView.invalidate()

    bitmap.recycle()
}

并称之为..

applyBitmapOperation(::changeBitmapContrast, 1.10f)

答案 1 :(得分:1)

protocol AnImportantProtocol {
    func doSomething(firstParameter: String, completionHandler: @escaping((Result<ModelProtocol>)->Void))
}