Kotlin常忘关键词

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xfhy_/article/details/79798198

1. JvmOverloads

在Kotlin中@JvmOverloads注解的作用就是:在有默认参数值的方法中使用@JvmOverloads注解,则Kotlin就会暴露多个重载方法。
可能还是云里雾里,直接上代码,代码解释一切:
如果我们在kotlin中写如下代码:

fun f(a: String, b: Int = 0, c: String="abc"){
    ...
}

相当于在Java中声明

void f(String a, int b, String c){
}

默认参数没有起到任何作用。

但是如果使用的了@JvmOverloads注解:

@JvmOverloads fun f(a: String, b: Int=0, c:String="abc"){
}

相当于在Java中声明了3个方法:

void f(String a)
void f(String a, int b)
void f(String a, int b, String c)

2. as? 可空转化

当我们用as进行强转时如果转化失败,那么会抛异常,这种情况下,建议尽量用as?,当然,转化出来的是可空类型的

3. 提前结束let

这个直接看代码,就是在外面加一个标签

mOldNewsSortList?.forEachIndexed oldDataLoop@ { index, newsSortBean ->
    if (newsSortBean.isChecked) {
        dataChanged = true
        return@oldDataLoop
    }
}

4. 集合中筛选

用filter吧,忘掉remove….

猜你喜欢

转载自blog.csdn.net/xfhy_/article/details/79798198