ホームページ > Java > &#&チュートリアル > Java で配列を変数引数メソッドに適切に渡すにはどうすればよいですか?

Java で配列を変数引数メソッドに適切に渡すにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-12 18:30:24
オリジナル
918 人が閲覧しました

How Can I Properly Pass an Array to a Variable Argument Method in Java?

Java の可変引数メソッドに配列を渡す

概要

可変引数メソッド (varargs) を使用すると、任意の数の引数を渡すことができますメソッドに。ただし、配列を引数として varargs メソッドに渡す場合、配列は個別の引数ではなく単一の引数として扱われるため、期待どおりに動作しない可能性があります。

Varargs 構文について

In Java では、varargs パラメータは、myFormat メソッドの String ... args のように、データ型の後に省略記号 (...) を使用して宣言されます。この構文は、メソッド シグネチャの最後のパラメーターが、指定された型の 1 つ以上の引数を受け入れることができることを示します。

例: String.format に配列を渡す

class A {
  private String extraVar;
  public String myFormat(String format, Object ... args){
    return String.format(format, extraVar, args);
  }
}
ログイン後にコピー

この例では、 myFormat メソッドは可変数の引数を受け取ります。ただし、String.format(format, extraVar, args) を呼び出すと、args 配列は個別の引数ではなく 1 つの引数として扱われます。

解決策: 別の配列を使用する

args の各要素を個別の引数として渡す場合は、追加の要素を含む新しい配列を作成できます。 extraVar.

String[] newArgs = prepend(args, extraVar);
return String.format(format, newArgs);
ログイン後にコピー

この場合、prepend メソッドは args の先頭に extraVar を追加し、新しい配列を返します。この配列は String.format.

Varargs Gotchas

可変長引数を使用する場合、注意すべき点がいくつかありますmin:

  • Null の受け渡し: varargs パラメーターへの唯一の引数として null を渡すと、NullPointerException が発生する可能性があります。これを回避するには、配列内の要素として null を使用するか、null を varargs 型にキャストします。
  • 追加の引数の追加: 追加の引数をメソッドに渡す必要がある場合は、配列を可変長引数として使用する場合は、既存の配列と追加の引数の両方を含む新しい配列を作成する必要があります。
  • プリミティブArray: 可変引数はプリミティブ型の配列では機能しません。プリミティブの配列を渡すには、各要素を対応するラッパー クラスにラップする必要があります (例: int[] から Integer[])。

以上がJava で配列を変数引数メソッドに適切に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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