初試kotlin:用Kotlin開發桌面/CommandLine 工具


既然kotlin是google和jetbrain聯合搞的,開發環境不用說了肯定是Intellij Idea了。

先創建一個kotlin項目。

 

 

 

 

先來一個HelloWorld

package com.xirtam.liqui.price

/**
 * Created by xirtam on 17/7/4.
 */
class Main {

}

fun main(args: Array<String>) {
    println("Hello Kotlin");
}

注意和Java不同,這個class是沒啥用的,程序入口不需要放在類里。

然后運行點這里

 

運行結果

 

接下來寫一個獲取liqui虛擬幣行情的小工具吧,需要編寫網絡請求,java和kotlin互相調用,引入一個fastjson的jar來解析json,還有簡單的邏輯等等代碼。

 

需要用到一個開源的網頁小工具把json轉成Javabean,地址:http://www.jsonschema2pojo.org/

需要參照liqui交易所提供的api文檔:https://liqui.io/api

需要用到fastjson項目:https://github.com/alibaba/fastjson

 

由於我並沒有使用gradle構建,所以先下載fastjson的jar,創建libs文件夾,然后把jar放進去,右鍵選擇add as library。

 

本文以獲取Adex行情為例,liqui提供的api是https://api.liqui.io/api/3/ticker/adx_eth,通過瀏覽器訪問,得到返回的json報文,然后復制到jsonschema2pojo里面,生成Javabean放入項目。

 

 

 

這里直接復制網頁上的代碼,注意可能會生成多個.java文件,需要一個個復制,然后到IDEA里,點中src,直接Ctrl + V,IDEA會自動幫我們創建好.java文件。

 

 

 

編寫Main的完整代碼

package com.xirtam.liqui.price

import com.alibaba.fastjson.JSON
import com.xirtam.liqui.price.datas.AdxEth
import java.net.HttpURLConnection
import java.net.URL


/**
 * Created by xirtam on 17/7/4.
 */
class Main {

}

fun main(args: Array<String>) {
    val url = "https://api.liqui.io/api/3/ticker/adx_eth"
    val userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36"// 模擬瀏覽器


    val connection = URL(url).openConnection() as HttpURLConnection//獲取到connetcion為了設置header
    connection.setRequestProperty("User-agent", userAgent)//設置header
    try {
        connection.inputStream.bufferedReader().use { reader ->
            // ... do something with the reader
            var adx = JSON.parseObject(reader.readLine(), AdxEth::class.java)//讀取服務器返回數據、解析Json、存入Bean對象
            println(adx.adxEth.last)//輸出結果
        }
    } finally {
        connection.disconnect()//確保鏈接關閉
    }
}

 

最后打包成jar

 

運行

 

最后提示一個功能,當你copy了一段java代碼想粘貼到kotilin中時,智能的IDEA會問你要不要轉換

 

是不是很方便?

還不趕緊換?

最佳學習地址:https://try.kotlinlang.org


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM