NPE は、null 参照を使用しようとしたときに発生する実行時例外です。 JVM は、プログラムのクラッシュを引き起こす可能性のある null ポインターの逆参照を防ぐために、この例外をスローします。
String name = null; int length = name.length(); // NPE thrown here
ここでは、null 参照でメソッドを呼び出そうとしています。変数名にオブジェクトが含まれていないため、length() を呼び出すことができません。
class User { Address address; } class Address { String street; } User user = new User(); String street = user.address.street; // NPE: address is null
これは、ネストされたオブジェクトへのアクセスがどのように失敗するかを示しています。ユーザーが存在する間、アドレスは初期化されていないため null です。
List<String> items = null; items.add("item"); // NPE
コレクションは使用前に初期化する必要があります。空として初期化することをお勧めします: List
Optional<User> user = Optional.of(new User()); String street = user .flatMap(User::getAddress) // Converts User to Optional<Address> .map(Address::getStreet) // Converts Address to Optional<String> .orElse("Unknown"); // Provides default if null
これにより、ネストされた null チェックが流暢な API に置き換えられます。各ステップは潜在的な null を安全に処理します。
Optional<String> upperStreet = Optional.ofNullable(user) .filter(u -> u.getName() != null) // Only proceed if name exists .map(User::getName) // Get the name .map(String::toUpperCase); // Transform it
これは、null を安全に処理しながら値を変換する方法を示しています。
String result = Optional.ofNullable(someString) .orElse("default");
null チェックの代わりにフォールバック値を提供するクリーンな方法。
Optional.ofNullable(user) .ifPresent(u -> System.out.println(u.getName()));
値が存在する場合にのみコードを実行し、null でない場合のチェックを置き換えます。
以上がオプションを使用した NullPointerException の処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。