Android从java->kotlin,感受kotlin的神奇之处

一个获得指定文件夹下所有根级文件的例子
最原始代码

val files = Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DCIM).listFiles(filter)
object filter : FileFilter {
    override fun accept(pathname: File): Boolean {
        return pathname.isFile
    }
}


简化后的代码

val files = Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DCIM).listFiles(filter)
object filter : FileFilter {
    override fun accept(pathname: File): Boolean = pathname.isFile
}

再次简化,同样的几行代码精简之后就成了这样,神奇呀:expressionless:

val files = Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DCIM).listFiles {
                    pathname -> pathname.isFile
                }  

还有kotlin for循环编译数组检查满足某个条件就执行某段语句,根据之前Java的思路是这么写的。

for (i in mDevList) {
        if (i.ip != devInfo.ip) {
                addDivList(devInfo)
        }
}

然而kotlin的话直接这样写就好了

mDevList.filter { it.ip != devInfo.ip }
        .forEach { addDivList(devInfo) }

新项目直接上了kotlin进行Android开发,两周下来感觉kotlin写起来比Java优美不少,并且代码量有明显的降低,一些数据操作的简化写法也十分方便,更多其他的地方还有待挖掘,另外开发之前我是一点没看kotlin,纯粹是边开发边看kotlin文档,之所以敢这样,主要还是还发现Android studio还有这个功能-->Java代码转化kotlin代码

[图片上传失败...(image-ec0f67-1511406440467)]

遇到地方不知道kotlin代码怎么写了怎么办,直接用Java写一遍,一转换就成kotlin代码了,而且运行完全没有问题:joy:,所以果断直接上kotlin开发吧。

还有许多地方大家自己上手来体会吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章