使用Koltin的Lambda表達式,我們可以拋棄回調接口的使用。只需設置希望后面會被調用的函數即可。
示例如下
新建一個Koltin類
class MyBean { fun testcallback1(callback: (String) -> Unit) { callback.invoke("這是回調的內容") } fun testcallback2(value1: Int, value2: Int, callback: (Int, Int) -> Int): Int { var result = callback.invoke(value1, value2) return result * 3 }}進行調用
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) var bean = KotlinBean() bean.testcallback1 { m -> toast(m) } val result = bean.testcallback2(1, 2, { value1, value2 -> value1 + value2 }) toast("計算結果" + result.toString()) }}最后顯示的結果
testcallback1的toast顯示為: "這是回調的內容"testcallback2將value1和value2相加,最后再乘以3,故toast顯示為9新聞熱點
疑難解答