Java での Null 引数のオーバーロード解決
Java でオーバーロードされたメソッドに引数として null を渡す場合、どのメソッドを理解することが重要です
次の点を考慮してください。例:
JOptionPane.showInputDialog(null, "Write something");
JOptionPane.showInputDialog の 2 つのオーバーロードされたメソッドが存在します:
親パラメータとして null を渡すときに呼び出されるオーバーロードはどれですか?
答え:
Java がオーバーロードを解決します「最も具体的な方法」の原則に基づいています。この場合、最も具体的なメソッドは次のとおりです。
showInputDialog(Component parent, Object message)
このルールは、オーバーロード解決プロセス、特に「メソッド シグネチャの決定」として知られるステップから派生します。コンパイラは、入力型 (この場合は null と String) を処理できる最も具体的なメソッドを検索します。
「より具体的な」メソッドは、あるオーバーロードの呼び出しを別のオーバーロードに渡すことができるかどうかに基づいて決定されます。コンパイル時の型エラーが発生します。この例では、最初のオーバーロードの呼び出しをエラーなしで 2 番目のオーバーロードに渡すことができますが、その逆はできません。
したがって、null を JOptionPane.showInputDialog に渡すとき、コンポーネントの親パラメーター (最も具体的なメソッド) が呼び出し用に選択されます。
以上がNull 引数が渡された場合、Java はオーバーロードされたメソッドをどのように解決しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。