啊,Kotlin 空安全 vs. Java!一场经典的对决,就像哥斯拉与摩斯拉一样,但摧毁城市的怪物更少,更多的是关于……好吧,无。 ?
Java,保佑它的心脏,从拨号时代就已经存在了。当时,没有人担心 null 会导致您的应用程序崩溃,因为说实话,互联网导致您的应用程序崩溃的情况要普遍得多。但时代变了,
Java 的“任何时候任何东西都可以为 null”的方法就像 5G 世界中的拨号调制解调器一样受欢迎。输入 Kotlin,超级英雄程序员的助手,用它惊人的空安全功能来拯救世界(和你的理智)!
NullPointerException 是 Java 开发人员存在的祸根。它们就像你在半夜踩到的那些微小的乐高积木——虽小但能够造成巨大的疼痛。
事实上,空引用的发明者托尼·霍尔 (Tony Hoare) 称其为“价值数十亿美元的错误”。 (我们猜测他踩了很多乐高积木。)
另一方面,Kotlin 采取了积极主动的方法。这就像您为了避免踩到乐高积木而穿的舒适拖鞋一样。借助 Kotlin 的 Null Safety,编译器本身就成为了一个警惕的守护者,防止 null 潜入您的代码并造成严重破坏。
在 Kotlin 中,您必须通过添加 ? 显式告诉编译器变量是否可以为 null。到类型声明。例如:
// Kotlin var name: String? = null // This variable can be null var age: Int = 42 // This variable cannot be null
就这么简单吗?就像一个警告信号:“小心!空值可能潜伏在这里!” 如果您尝试使用可为 null 的变量做一些有风险的事情,Kotlin 编译器将阻止您并显示错误消息。这就像你的代码有一个私人保镖,只不过这个保镖非常擅长语法和语法。
Java在其后来的版本中,试图赶上诸如Optional之类的功能。这是一项勇敢的努力,有点像你的爷爷试图学习 TikTok。他的意思是好的,但并不完全一样。可选可能很麻烦,并且无法提供与 Kotlin 的 Null Safety 相同级别的编译时安全性。
// Java import java.util.Optional; public class OptionalExample { public static void main(String[] args) { // Creating an Optional object Optionalname = Optional.of("John Doe"); // Checking if a value is present if (name.isPresent()) { System.out.println("Name is present: " name.get()); } else { System.out.println("Name is absent"); } // Using orElse to provide a default value String defaultName = name.orElse("Unknown"); System.out.println("Name: " defaultName); // Using orElseGet to provide a default value with a supplier String anotherDefaultName = name.orElseGet(() -> "Another Unknown"); System.out.println("Name: " anotherDefaultName); } }
Kotlin 的 Null Safety 改变了游戏规则。它使您的代码更安全、更简洁,并且不易出现那些可怕的 NullPointerException。因此,如果您厌倦了与 null 作斗争,就像它们是视频游戏中的最终 Boss 一样,那么可能是时候切换到 Kotlin 了。你的理智会感谢你的。 ?
P.S. 如果您仍然持观望态度,请想象一下:一个您永远不必调试另一个 NullPointerException 的世界。听起来就像天堂,不是吗? ?
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3