以下是在实际开发过程中与eclipse java maven三者的对比所体会的.
idea
1 界面美观
这个就仁者见仁智者见智.
2 不卡
曾经在用eclipse的时候, 有很多次写代码的时候就卡死了, 不得不关掉再重新打开. 而在用idea的时候死没有出现过这种情况. 也可能是打开一个idea只能打开一个项目,而eclipse是打开一个工作空间.
3 测试方便
在idea中写main方法或junit测试的时候,直接在旁边就有个运行按钮, 而eclipse一般是, 单击方法名,右键 run juin test, 虽然可以设置快捷键, 但是这已经成为了习惯.

4 可以定义项目模板
比如我在架构2.0 的base项目, 就把他存储为模板, 每一次开发新项目时以这个模板为基础创建即可.

5 代码提醒智能
这个就体现在写代码的方方面面 只能在实际写代码的过程中多体会.
kotlin
1 去掉分号 去掉分号 去掉分号, 去掉new 去掉new 去掉new 重要的事说三遍.
每行代码末尾不需要分号,新建每个对象不需要new.
不要小看这个分号和new, 不仅是可以少敲很多下键盘, 关键是这个分号和new 真的没什么必用.
这也足以说明kotlin致简的设计思想, 能省略的尽量省(分号, new, lambda的括号...) 不能省略的就默认自带(单例, getter, setter,it...)
我当时学kotlin的时候就深深的喜欢上这个语言了, 甚至那时玩塞尔达的时候给我第一匹马取的名字就叫kotlin.
2 单文件可以写多个类
这也是把java换成kotlin最根本的原因, 因为随着项目的发展类越来越多, 查找一个类都已经变的很麻烦, 我不喜欢用自带的搜索, 习惯了从包的一级一级点下去, 很多类就只有几行代码, 而很多类又是相关的, 完全是可以放到一起的. 这也是架构2.0的由来.
3 扩展函数和属性
在java中写日志的方式
一 在每个类中添加logger

二 使用lombok

第一种方法就不说了, 太麻烦, 第二种方法, 稍微好一些, 只是需要在每一个类上加一个注解.
而在kotlin中, 你只需要全局定义一个扩展属性, 那么每一个类都会自带一个log变量.
kotlin的Any对象,对应java 的Object对象, 所有的类都是继承Any对象等同于java中所有的父类都是Object.

在java中打印的方式

kotlin中

虽然只是少了11个字符, 但是真的看着要舒服很多, 因为简洁.
接口的输入输出都是json字符串, 通常需要打印json串来看我们的接口是否正确.
在java中打印对象的json串

而在kotlIn中

有了扩展函数, 相当于每一个对象都自带了println方法, pj (pring json) 方法和toJsonString属性.
调试测试有了翻天覆地的变化.
只要是你经常用的都可以写成扩展函数和方法.

4 可以定义全局属性和方法 不需要有类
这其实是对java中各种各样的Util的优化.
在java里的工具类是这样的

而kotlIn中只有一个Util文件即可

因为工具类通常是调它的方法,根本不需要类名,直接调用方法即可.

5 lambda表达式

省略了参数, 有默认参数it , 新增了各种各样常用的方法, list map set 的构造非常方便. 也就是说它会在方方面面减少你的代码量.

6 对象及带接收者的lambda with apply let run
不需要为对象的每一个属性添加get, set方法. 再也看不到a.getXXX(), a.setXXX() 这样啰嗦的语法了.
页面传的经纬度的格式是度分秒数组, 自动转换成小数的度. 插入数据库后, 从数据库取的小数的度会自动转换成度分秒返回给前端显示.完全不需要在业务代码中写转换逻辑.

构造函数可以写默认值, 参数也不需要按照顺序.
构造函数和apply, run 等等的结合 ,实在是太方便了, 以前烦人的建对象和给对象属性赋值在都没有了.
与spring自动注入的结合也方便多了.



7 字符串模板和三引号运算符
字符串模板, 主要应用在日志信息里.再也不需要用{}预留位置,也不需要担心参数写的不对应了.

三引号运算符就很强大了, 再配合mybatis的script 直接就可以去掉mybatis的xml.

8 其他比较常用的 还有 单例 ?, !!, ?:, when, if else, 等运算符.
gradle
1 配置使用代码, 扩展性强, 也通俗易懂.
2 自定义任务简单. 比如远程打包部署,自动写打包时间.
3 打包效率高.
还是一样我并不会推荐大家使用这些, 我只是把我在开发中的感受写下来.毕竟我只写了优点, 缺点就是如果没有很强的目的性是很难坚持学下去的(主要还是新事物的抵触心理). idea和gradle在我没有遇到kotlin的时候, 就已经尝试过了几次,最终都是放弃而还是继续使用eclipse和maven. 就算学好了想在实际开发中应用也不是易事.我是由于我们公司后台开发比较少,也不是很忙,大家有时间去学习,最终应用成功.
网友评论