首頁  >  文章  >  Java  >  Kotlin Null Safety 與 Java:錯誤喜劇(但主要是在 Java 中)

Kotlin Null Safety 與 Java:錯誤喜劇(但主要是在 Java 中)

DDD
DDD原創
2024-11-02 12:26:02332瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn