ホームページ > Java > &#&チュートリアル > Javaメソッドのパラメータ不一致例外(IllegalArgumentException)の解決方法

Javaメソッドのパラメータ不一致例外(IllegalArgumentException)の解決方法

PHPz
リリース: 2023-08-17 10:17:05
オリジナル
2964 人が閲覧しました

Javaメソッドのパラメータ不一致例外(IllegalArgumentException)の解決方法

Java メソッド パラメータ不一致例外 (IllegalArgumentException) の解決方法

Java プログラミングでは、メソッド パラメータ不一致例外、つまり IllegalArgumentException が頻繁に発生します。この例外は通常、メソッドが呼び出され、渡されたパラメータの型がメソッドで定義されたパラメータの型と一致しないため、メソッドを正しく一致させることができない場合に発生します。この記事では、この問題を解決する方法を説明し、コード例を示します。

1. 例外の説明と原因の分析

IllegalArgumentException は Java の実行時例外であり、メソッドによって受け取られたパラメーターが不正であることを示します。メソッドを呼び出すときに、渡されたパラメーターの型がメソッドで定義されたパラメーターの型と一致しない場合、この例外がスローされます。

簡単な例で例外の理由を見てみましょう:

public class Example {
    public void printName(String name) {
        System.out.println("Name: " + name);
    }
    
    public static void main(String[] args) {
        Example example = new Example();
        example.printName(123); // 这里会抛出IllegalArgumentException异常
    }
}
ログイン後にコピー

上の例では、printName メソッドは String 型のパラメータ名を定義していますが、printName メソッドが呼び出されたとき、整数パラメータが渡されました。これが、パラメーターが一致せず、IllegalArgumentException がスローされる理由です。

2. 解決策

パラメータ不一致の例外については、次の解決策を採用できます:

  1. メソッド呼び出し時にパラメータを確認します:
    まず、メソッド呼び出し時のパラメータの型が、メソッドで定義されたパラメータの型と一致しているかどうかを注意深く確認する必要があります。渡されるパラメータのタイプがメソッドで予期されるパラメータのタイプと一致していることを確認してください。
  2. 強制的な型変換:
    パラメータの型が一致しない場合は、強制的な型変換の実行を試みることができます。ただし、強制的な型変換を実行する前に、変換が安全であること、つまり、変換された型がメソッドによって正しく処理できることを確認する必要があります。

次は、強制的な型変換の解決策を示す例です:

public class Example {
    public void printNumber(int number) {
        System.out.println("Number: " + number);
    }
    
    public static void main(String[] args) {
        Example example = new Example();
        
        double number = 12.34;
        example.printNumber((int) number); // 强制类型转换,将double类型转换成int类型
        
        String str = "123";
        example.printNumber(Integer.parseInt(str)); // 使用Integer.parseInt方法将字符串转成int类型
    }
}
ログイン後にコピー

上の例では、printNumber メソッドは int 型のパラメーター番号を定義していますが、A double を渡します。 type と string type パラメータが入力されます。キャストと関連する型変換メソッドを使用することで、パラメーターの型の不一致の問題を解決することに成功しました。

  1. 関数のオーバーロード:
    メソッドで複数の種類のパラメーターを処理する必要がある場合は、メソッドのオーバーロードを検討できます。関数のオーバーロードを使用すると、同じ名前で複数のメソッドを定義できますが、パラメーターの型またはパラメーターの数は異なっている必要があります。

次は、関数のオーバーロードの解決策を示す例です。

public class Example {
    public void printValue(int value) {
        System.out.println("Value: " + value);
    }
    
    public void printValue(double value) {
        System.out.println("Value: " + value);
    }
    
    public static void main(String[] args) {
        Example example = new Example();
        
        example.printValue(123);
        example.printValue(12.34);
    }
}
ログイン後にコピー

上の例では、int 型の処理と double 型のパラメーターを持つメソッドを定義しています。このようにして、異なる種類のパラメータが渡された場合でも、対応するメソッドを正しく照合することができ、パラメータ不一致例外の発生を回避できます。

概要:

パラメータ不一致例外 (IllegalArgumentException) は、Java プログラミングで最も一般的な例外の 1 つです。この問題は、メソッド呼び出し、キャスト、関数のオーバーロード時にパラメーターを注意深くチェックすることで解決できます。日々のコーディングでは、パラメータ不一致の例外を避けるために、パラメータの型の一致に注意を払い、渡されたパラメータがメソッドで定義されたパラメータの型と一致していることを確認する必要があります。

以上がJavaメソッドのパラメータ不一致例外(IllegalArgumentException)の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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