亚马逊|Kotlin在Java中修复了什么

亚马逊|Kotlin在Java中修复了什么

Kotlin是一种在JVM上运行的静态类型编程语言 , 也可以编译为JavaScript源代码 , 还可以使用LLVM编译器基础结构 。 Kotlin自2012年以来一直是开源的 。
它是一种面向JVM和Android的通用开源编程语言 , 结合了函数式编程和面向对象编程的特点 。 Kotlin受欢迎的主要原因之一是它与Java6的完美兼容性 。
Kotlin解决的Java问题
1.NullSafety–数十亿美元的错误是代码中空引用的危险的名称 。 Kotlin的类型系统旨在消除这些空引用的危险 。 这是Java和许多其他编程语言中最常见的陷阱之一 。
2.不再使用原始类型–Kotlin的设计考虑了Java互操作性 。 因此 , 现在可以从Kotlin有效地调用现有Java代码 。 这允许从Kotlin调用Java代码 。 或者 , Kotlin代码可以相当顺利地在Java中使用 。
3.不变数组–Kotlin中使用的基本类型是数字、数组、字符和字符串 。 与Java不同 , 这种编程语言中的数组是不变的 , 这意味着Kotlin不允许用户将数组
4.FunctionTypes–在Kotlin中 , lambda表达式或匿名函数可以访问外部范围中声明的变量 。 这与Java的SAM转换相反——Kotlin具有适当的函数类型 。
5.使用siteVariance–通配符类型是Java类型系统中最棘手的部分之一 。 这个问题在Kotlin中没有出现 , 因为它没有任何通配符类型 , 只有类型投影和声明站点差异 。
6.异常–Kotlin没有任何已检查的异常 , 因为该语言中的所有异常类都是可抛出类的后代 。 每个异常都有消息、堆栈跟踪和可选原因 。

为什么选择Kotlin
使用混合类型需要在运行时知道对象的类型 , 以便将对象安全地强制转换为所需的类型 , 并进一步调用方法或访问其属性 。 对于Java中的类转换 , 我们首先使用'instanceof'操作符检查变量的类型 , 然后将其转换为目标类型 。
而在Kotlin , 当我们执行一个“!如果对某个变量进行“!is”或“is”检查 , 编译器将跟踪此信息 , 并将自动将该变量转换为目标类型 , 其中“!is”或“is”检查在范围内是否为真 。
偶尔 , 用户需要创建对某个类稍加修改的对象 , 但不需要显式地为其声明新的子类 。 Java使用匿名内部类处理这种情况 , 但是Kotlin通过使用对象表达式和声明来概括相同的概念 。 就像Java中的匿名内部类一样 , 对象表达式中的代码可以从封闭范围访问变量 。 但在Kotlin中 , 这并不局限于Java中的最终变量 。
数据类
【亚马逊|Kotlin在Java中修复了什么】创建类的全部目的是保存数据 , 在某些类中 , 带有实用函数的标准功能可以从该数据中机械地派生出来 。 这在Kotlin中称为数据类 。 这些类通常包含一些旧的样板代码 , 格式为toString()、hashcode()、equals()、setters和getters 。
基本上 , Kotlin的数据类类似于常规类 , 但具有一些附加功能 。
结论
尽管Kotlin有很多好处 , 但如果你问这样一个问题 , “Kotlin和Java哪个更好?”答案并不简单 。
Kotlin已经走了很长的路 , 即使它仍处于版本1.2的早期阶段 。 Kotlin代码比Java代码更安全、更简洁 。 Kotlin不仅对新的应用程序有用 , 而且它的文件可以与Java文件共存——这意味着它还可以应用于现有的应用程序 。
当然 , Java已经存在多年了 , IT行业有大量的Java开发人员——但Kotlin的情况并非如此 。 市场仍在努力满足语言的需求 , 无法完全满足供应部分 。