Kotlin從入門到跑路(一)
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中那些沒必要的模板程式碼,大大提升了我們的開發效率。
相關文章
- babel從入門到跑路Babel
- Docker實戰-從入門到跑路Docker
- Vue入門到跑路---VuexVue
- Shader從入門到跑路:自定義紋理輸入
- 《Golang 從入門到跑路》之開發環境搭建Golang開發環境
- Shader從入門到跑路:實作螢幕扭曲效果
- Shader從入門到跑路:螢幕後處理效果
- Linux Shell 從入門到刪除根目錄跑路指南Linux
- Linux Shell從入門到刪除根目錄跑路指南Linux
- MyBatis從入門到精通(一):MyBatis入門MyBatis
- RabbitMQ 從入門到精通 (一)MQ
- ActiveMQ從入門到精通(一)MQ
- Kotlin 入門(一)Kotlin
- 從Java到Kotlin(一)JavaKotlin
- Shader從入門到跑路:樸實無華的圖形學基礎
- Shader從入門到跑路:顏色自定義輸出、紋理取樣
- Linux 從入門到跑路第二十一講 -- 字串擷取Linux字串
- scala 從入門到入門+
- makefile從入門到入門
- webpack 從入門到放棄(一)Web
- swoole——從入門到放棄(一)
- Prometheus從入門到精通:一、部署Prometheus
- Weex從入門到超神(一)
- Android MVP模式從入門到進門(一)AndroidMVP模式
- Vue學習從入門到精通(一)Vue
- Docker從入門到精通(一)——初識Docker
- Docker 從入門到精通(一)基本操作Docker
- kafka從入門到關門Kafka
- 資料庫運維初入門-SQL Server入門到跑路002-初使用資料庫運維SQLServer
- Thymeleaf從入門到精通
- LESS從入門到精通
- Git 從入門到精通Git
- Shell從入門到精通
- Promise從入門到精通Promise
- Jdbc從入門到入土JDBC
- vim從入門到精通
- Charles 從入門到精通
- RabbitMQ從入門到精通MQ