首页 > Java > java教程 > 正文

Kotlin Null Safety 与 Java:错误喜剧(但主要是在 Java 中)

DDD
发布: 2024-11-02 12:26:02
原创
251 人浏览过

Kotlin Null Safety vs. Java: A Comedy of Errors (But Mostly in Java)

啊,Kotlin 空安全 vs. Java!一场经典的对决,就像哥斯拉与摩斯拉一样,但摧毁城市的怪物更少,更多的是关于……好吧,零。 ?

Java,保佑它的心脏,从拨号时代就已经存在了。当时,没有人担心 null 会导致您的应用程序崩溃,因为说实话,互联网导致您的应用程序崩溃的情况要普遍得多。但时代变了,

Java 的“任何时候任何东西都可以为 null”的方法就像 5G 世界中的拨号调制解调器一样受欢迎。输入 Kotlin,超级英雄程序员的助手,用它惊人的空安全功能来拯救世界(和你的理智)!

价值十亿美元的错误(不是标题党!)

NullPointerException 是 Java 开发人员存在的祸根。它们就像你在半夜踩到的那些微小的乐高积木——虽小但能够造成巨大的疼痛。

事实上,发明空引用的托尼·霍尔 (Tony Hoare) 称其为“十亿美元的错误”。 (我们猜测他踩了很多乐高积木。)

另一方面,Kotlin 采取了积极主动的方法。这就像您为了避免踩到乐高积木而穿的舒适拖鞋一样。借助 Kotlin 的 Null Safety,编译器本身就成为一个警惕的守护者,防止 null 潜入您的代码并造成严重破坏。

Kotlin 是如何做到的(剧透:非常酷)

在 Kotlin 中,您必须通过添加 ? 显式告诉编译器变量是否可以为 null。到类型声明。例如:

// Kotlin
var name: String? = null // This variable can be null
var age: Int = 42        // This variable cannot be null
登录后复制

就这么简单吗?就像一个警告信号:“小心!空值可能潜伏在这里!” 如果您尝试使用可为 null 的变量做一些有风险的事情,Kotlin 编译器将阻止您并显示错误消息。这就像你的代码有一个私人保镖,只不过这个保镖非常擅长语法和句法。

Java 的反击(它尝试过,祝福它的心)

Java 在其后来的版本中,试图赶上诸如Optional之类的功能。这是一项勇敢的努力,有点像你的爷爷试图学习 TikTok。他的意思是好的,但并不完全一样。可选可能很麻烦,并且无法提供与 Kotlin 的空安全相同级别的编译时安全性。

// Java
import java.util.Optional;

public class OptionalExample {

    public static void main(String[] args) {
        // Creating an Optional object

        Optional<String> name = 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 的世界。听起来就像天堂,不是吗? ?

以上是Kotlin Null Safety 与 Java:错误喜剧(但主要是在 Java 中)的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!