ホームページ > Java > &#&チュートリアル > Java で Null オブジェクト参照を使用して静的メソッドを呼び出すことができるのはなぜですか?

Java で Null オブジェクト参照を使用して静的メソッドを呼び出すことができるのはなぜですか?

Patricia Arquette
リリース: 2024-11-03 06:45:03
オリジナル
730 人が閲覧しました

Why Can You Call Static Methods with a Null Object Reference in Java?

Null 参照を使用した静的メソッドへのアクセス

Java では、Null 参照でメソッドを呼び出すと、通常、NullPointerException がトリガーされます。ただし、この動作は静的メソッドでは異なります。

静的メソッドとインスタンス メソッド

Java では、メソッドは静的またはインスタンスのいずれかになります。静的メソッドはクラス自体に属しており、クラス名を使用して直接呼び出すことができますが、インスタンス メソッドはオブジェクトに関連付けられており、呼び出すにはオブジェクト参照が必要です。

Null 参照を使用した静的メソッドの呼び出し

null 参照を使用して静的メソッドを呼び出すと、Java ランタイムは参照をそのメソッドが属するクラスの型に自動的に置き換えます。この動作により、クラスのインスタンスが存在しない場合や参照が null の場合でも、静的メソッドを確実に呼び出すことができます。

次の Java コードを考えてみましょう。

<code class="java">public class Why {

  public static void test() {
    System.out.println("Passed");
  }

  public static void main(String[] args) {
    Why NULL = null;
    NULL.test();
  }

}</code>
ログイン後にコピー

この例では、test() メソッドは静的であり、クラス名を使用して直接呼び出すことができます。 「NULL.test();」という行null 参照をクラス名「Why」に置き換え、test() メソッドを正常に呼び出します。 NullPointerException はスローされません。

この動作が許可されるのはなぜですか?

静的メソッドの実行にクラスのインスタンスが必要ないため、Java ではこの動作が許可されています。これらは、特定のオブジェクトではなく、クラス自体に関連付けられます。 null 参照を使用して静的メソッドが呼び出される場合、コンパイラは正しいクラス型が使用されることを確認します。

注意事項

null 参照を使用して静的メソッドを呼び出すと、許可されているとしても、それは不適切な行為とみなされます。開発者は、混乱や潜在的なエラーを避けるために、静的メソッドにアクセスするときは常に正しいクラス名を使用する必要があります。

以上がJava で Null オブジェクト参照を使用して静的メソッドを呼び出すことができるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート