既然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

初试kotlin:用Kotlin开发桌面/CommandLine 工具的更多相关文章

  1. ETH&EOS开发资源及工具集合(完整汇总版)

    ETH&EOS开发资源及工具集合(完整汇总版) 3113 ETH开发资源篇 一.开发语言 ·         Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语 ...

  2. arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序

    前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...

  3. electron之Windows下使用 html js css 开发桌面应用程序

    1.atom/electron github: https://github.com/atom/electron 中文文档: https://github.com/atom/electron/tree ...

  4. heX——基于 HTML5 和 Node.JS 开发桌面应用

    heX 是网易有道团队的一个开源项目,允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.heX 是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁 ...

  5. Redis桌面管理工具 RedisDesktopManager

    下载链接地址:[官网地址:https://redisdesktop.com] redis-desktop-manager-0.8.8.384.exe Source code (zip) Source ...

  6. heX:用HTML5和Node.JS开发桌面应用

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. node-webkit:开发桌面+WEB混合型应用的神器

    顾名思义, node -webkit就是 node js+webkit. 这样做的好处显而易见,核心奥义在于,用 node js来进行本地化调用,用webkit来解析和执行HTML+JS. 快速上手 ...

  8. virtenv 0.8.6 发布,虚拟桌面配置工具 - 开源中国社区

    virtenv 0.8.6 发布,虚拟桌面配置工具 - 开源中国社区 virtenv 0.8.6 发布,virtenv 是一个用 QT4 开发的应用,用来配置和启动基于 LXC 的虚拟桌面环境.该容器 ...

  9. 桌面管理工具 RedisDesktopManager 0.8.8

    RedisDesktopManager 0.8.8  发布,此版本更新内容如下: 改进: Show key bytes length and value bytes length #3677 修复: ...

随机推荐

  1. ZMQ示例:使用 curve 进行加密通信

    1. ZMQ 官方文档 ZMQ 的官方文档中关于 curve 的介绍如下: Client and server roles A socket using CURVE can be either cli ...

  2. C# C/S程序出错:ContextSwitchDeadlock is detected

    选择菜单栏[调试]->[窗口]->[异常设置] 使用快捷键Ctrl + Alt + E,可以快速打开该对话框 通过取消勾选或者勾选进行设置即可. https://blog.csdn.net ...

  3. npm 发布包和删除包(2019最新攻略)

  4. django 查询如何使用 or

    参考:http://stackoverflow.com/questions/6567831/how-to-perform-or-condition-in-django-queryset django自 ...

  5. Egret 4.x 和 5.x 项目共存的方法

    正常来说,安装了对应的引擎之后,4.x的项目和5.x的项目是各自编译互相不影响的. 但是由于引擎的bug,我在实际使用中,出现了编译5.x的项目正常,之后切换到4.x的项目编译时,显示正常编译完毕,但 ...

  6. 使用ffmpeg搭建HLS直播系统

    [时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg,live,直播,点播, nginx, ssegment] 0 引言 本文作为HLS综述的后续文章. ...

  7. mybatis generator生成文件大小写问题

    mybatis generator插件中,如果 mysql数据表中的字段是用下划线划分的(个人一般都是喜欢这么创建表的字段,如:company_name),那么生成的Vo中会自动对应为companyN ...

  8. c++中的var_dump

    var_dump 在PHP中可以使用var_dump来输出变量,而且输出的内容很详细 用习惯后,再回来用c++的cout,各种不习惯,于是在github上找了一下,果然有类似的,而且是重载了 < ...

  9. 一文弄懂神经网络中的反向传播法(Backpropagation algorithm)

    最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...

  10. oracle 子查询中null的问题(in 和 not in)

    这里的in后面的句子可以理解为or拼接,简单举例即 in (9566,9839,null)可以等价于mgr=9566 or mgr=9839 or mgr=null, not in (9566,983 ...