Kotlin从入门到跑路(一)
那个Kotlin语言不是越来越火了吗,但是自己的Android项目中也暂时没有用到Kotlin作为主流的开发语言,所以就想自己跟着文档来学习一下,看看这个东西有多么的香。
Kotlin里面对基本数据类型的定义没有Java那么具有强制性的声明,只用一个val就行了,让我想到了js里面的var。可是当我想看一下这个数据到底是什么类型时,就给我报了以下Exception:
kotlin.jvm.KotlinReflectionNotSupportedError: Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect
这个时候我就懵逼了,我就创建了一个新的工程,写了一个这个fun就直接给我报错了?这Kotlin还怎么玩下去(来自萌新的疑惑)?
fun main(){
baseType()
}
fun baseType() {
val num1 = -1.45
printType(num1)
}
fun printType(param:Any){
println("$param is ${ param::class.simpleName} type")
}
然后我们去看这个Exception,是说我们缺少了kotlin-reflect这个依赖。那么这里的kotlin-reflect到底是个什么东西呢?
反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。Kotlin使函数和属性成为语言中头等公民,且以近似函数式或响应式方式内省属性和函数(如运行时属性名或类型;函数名或类型)
在Java平台上,需要使用反射特性的运行时组件为独立的JAR文件(kotlin-reflect.jar),目的是降低不需要使用反射的应用包的大小。如果要使用反射,首先需要保证项目中已添加相应的.jar文件。
那么我们就去app Module下面的build.gradle文件里面添加一下kotlin-reflect依赖就可以了。代码如下:
dependencies {
//...
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
}
bingo,这样我们的程序就能正常运行了(真难)。输出:
不过话说回来,Kotlin的代码量是真的少,减少了java中那些没必要的模板代码,大大提升了我们的开发效率。