ホームページ > Java > &#&チュートリアル > Java の変数引数 (Varargs) は配列を引数として受け入れることができますか?

Java の変数引数 (Varargs) は配列を引数として受け入れることができますか?

Mary-Kate Olsen
リリース: 2024-12-30 19:36:14
オリジナル
261 人が閲覧しました

Can Java's Variable Arguments (Varargs) Accept Arrays as Arguments?

Java で変数引数を持つメソッドに配列を引数として渡すことができますか?

次のメソッドを検討してください:

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

意図は、引数が個別に String.format に渡されることですが、 myFormat は引数を Object[] として扱います。これは目標と競合します。

Java の Varargs (変数引数)

Java の糖衣構文 T... は T[] に対応します。 。 Java 言語仕様 (JLS 8.4.1) によると、最後の仮パラメータは変数 arity であり、指定された型の配列と見なされます。したがって、可変引数メソッドは可変数の引数を受け入れます。このようなメソッドの呼び出しには、仮パラメータよりも多くの実引数を含めることができます。

解決策

目的の動作を実現するには、可変引数を使用して配列をメソッドに渡すことができます。基礎となる原則は、配列内のすべてのオブジェクトが個別の引数として渡されるということです。

これを示す例は次のとおりです。

public static String ezFormat(Object... args) {
    String format = new String(new char[args.length])
        .replace("", "[ %s ]");
    return String.format(format, args);
}

public static void main(String... args) {
    System.out.println(ezFormat("A", "B", "C"));
    // prints "[ A ][ B ][ C ]"
}
ログイン後にコピー

String... であることに注意してください。 String[].

可変引数と同等注意事項

  • Null の受け渡し: Null 値のみを指定して varargs メソッドを呼び出すと、NullPointerException が発生します。単一の null 値を渡すには、 new Object[] { null } または (Object) null を使用します。
  • 追加の引数の追加: varargs を使用して配列を渡すときに追加の引数を追加するには、次のようにします。追加要素を収容するための新しい配列。
  • プリミティブの配列の受け渡し:可変引数は参照型のみをサポートします。プリミティブの値を渡すには、プリミティブを対応するラッパー クラスの配列に変換します。

以上がJava の変数引数 (Varargs) は配列を引数として受け入れることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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