「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Kotlin Null Safety vs. Java: エラーの喜劇 (ただしほとんどが Java)

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

2024 年 11 月 17 日に公開
ブラウズ:229

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 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 をデバッグする必要がない世界です。まるで楽園のようですね。 ?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/hamada147/kotlin-null-safety-vs-java-a-comedy-of-errors-but-mostly-in-java-api?1 侵害がある場合、study_golang @163.comdelete までご連絡ください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3