ホームページ  >  記事  >  Java  >  Kotlin Null Safety vs. Java: エラーの喜劇 (ただしほとんどが Java)

Kotlin Null Safety vs. Java: エラーの喜劇 (ただしほとんどが Java)

DDD
DDDオリジナル
2024-11-02 12:26:02254ブラウズ

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

ああ、Kotlin Null Safety 対 Java!ゴジラ対モスラのような古典的な対決ですが、都市を破壊する怪獣は少なく、実存的な恐怖がより多くあります...まあ、ヌルです。 ?

Java はダイヤルアップ時代から存在しています。当時は、null によってアプリがクラッシュすることを心配する人はいませんでした。正直に言うと、インターネットによってアプリがクラッシュすることのほうがはるかに一般的だったからです。しかし時代は変わり、

Java の「いつでも何でも null にできる」というアプローチは、5G の世界ではダイヤルアップ モデムと同じくらい歓迎されています。スーパーヒーロー プログラマーの相棒である Kotlin をここで使用し、驚くべき Null Safety 機能で危機 (そしてあなたの正気) を救いましょう!

10億ドルの間違い (クリックベイトではありません!)

NullPointerException は、Java 開発者の生存の悩みの種です。それらは、真夜中に踏む小さなレゴブロックのようなものです。小さいですが、非常に大きな痛みを引き起こす可能性があります。

実際、null 参照を発明したトニー ホア氏は、これを「10 億ドルの間違い」と呼んでいました。 (彼はたくさんのレゴを踏んだと思われます。)

一方、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を学ぼうとしているおじいちゃんのような、勇敢な努力です。彼は良い意味で言っていますが、それはまったく同じではありません。 Optional は扱いにくい場合があり、Kotlin の Null Safety と同じレベルのコンパイル時の安全性を提供しません。

// 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 が発生しにくくなります。したがって、ビデオ ゲームの最後のボスのようにヌルと戦うことにうんざりしている場合は、Kotlin に切り替える時期が来たかもしれません。あなたの正気はあなたに感謝するでしょう。 ?

追伸 まだ迷っているなら、次のことを想像してみてください。別の NullPointerException をデバッグする必要がない世界です。まるで楽園のようですね。 ?

以上がKotlin Null Safety vs. Java: エラーの喜劇 (ただしほとんどが Java)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。