KittenBusinessService.java 是一个简单的办事,它能插入和攫取数据。在将其转换为 Kotlin 之后,我们必须应用一点技能来让它发患咀用。
起首,entityManager 的声明完全错了:

作为在类构造之后注入的值,它必须声明为可空,并应用 null 作为初始值,所有调用都须要进行空值检查。幸好 Kotlin 有办法在变量第一次应用之前设置为非空值:lateinit (延迟初始化)。也就是说如今没有值,但晚一点会有,这恰是注入所做的工作。这许可我们将其声明为非空的(non-nullable),并抛出所有空值检查(null-checks):


这个办法的返回值由编译器推导。不过,我更愿意声明它。如不亚妹弄错了,返回了一个缺点的类型, 声明将会捕获到这一点,你也将获得一个编译缺点,而不是一些奇怪的运行时行动。
REST 办事
打开 RestApplication.java 类,按下 [Kotlin]。完成。
再次大年夜主动转换开端。为类和所有非私有成员声明 open。如今测验测验应用办事,不会成功:

类和所有非私有办法必须声明为 open —— 不然就无法创建代劳。我们还要对返回的 id 类型做一个小小的修复,因为实体在被持久化之后,id 不再是 null。!! 意味着“值不克不及是 null;如不雅是,则抛出异常”。find 办法只是个函数,所以我们按这种方法声明它。
记住每个类属性会主动创建 getter 和 setter,并且 Kotlin 中所有器械都是 final 的。受保护(protected)的变量 kittenBusinessService 创建了一个 final 的受保护的 setter,我们并不爱好如许,因为它不克不及被代劳。这里我们可以将其声明为 open 或 private,两种方法都可以。因为它是暗里里应用的,我们声明它为 private,同时声明它为 lateinit 来处理空值检查:

小结
Kotlin 最酷的处地点于它与 Java 能很好的互动。我们可以一个个的去转换类,时代不会出现问题。
Kotlin 和 Java 在默认情况下有两点差别;Kotlin 的类和办法是 final 的,但 Java 的是 open 的;Kotlin 的成员是公共的,而 Java 的是受保护的。在写自力法度榜样的时这并没有太大年夜的差别,因为编译器会对所有问题发出警告,然则在 Java EE 框架中这会产生问题。在应用法度榜样安排和应用之前你不会收到任何对问题的警告。经由过程谨慎的编码可以避免问题,但当心的对待每个类的时刻不免掉足。只要忘了一个 open 就会造成应用法度榜样掉足。
鄙人一部分中,我会告诉你若何应用 Kotlin 编辑器插件来处理 Kotlin 的细节,让你的 Java EE 应用更结实。这些插件也会让代码更清楚,更有效,最终比对应的 Java 代码更好。
【编辑推荐】
- Kotlin 1.1正式版来了,基于JVM的编程说话
- JVM热点技巧:Java类的加载机制
- JVM内存分代、垃圾收受接收座谈
- 研究进修Kotlin的一些办法
- Kotlin函数与函数式编程浅析
推荐阅读
【51CTO.com原创稿件】2017年6月8日,国度工业信息平顺家当成长联盟成立大年夜会在北京万寿宾馆成功举办。国度工业信息平顺家当成长联盟成立苗圩在讲话中指出,跟着新一代信息技巧与制造技>>>详细阅读
本文标题:Kotlin和Java EE系列之—— 如何让Kotlin类对Java EE友好
地址:http://www.17bianji.com/lsqh/35661.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示