Kotlin 學(xué)習(xí)小結(jié)(reified關(guān)鍵字探索)

通過泛型及reified關(guān)鍵字實現(xiàn)同一方法不同類型的返回值
如:

    inline fun <reified T> Int.cast(): T {
        return when (T::class) {
            Int::class -> this as T
            Double::class -> toDouble() as T
            Float::class -> toFloat() as T
            String::class -> toString() as T
            else -> throw Exception("not support")
        }
    }

測試下方法

    @Test
    fun test() {
        val float: Float = 12.cast()
        println(float)
        val double: Double = 13.cast()
        println(double)
        val int: Int = 14.cast()
        println(int)
        val string: String = 15.cast()
        println(string)
    }

打印結(jié)果為

12.0
13.0
14
15
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容