[解決済み] JavaにおけるString[]とString...の違いは何ですか?
2022-03-04 15:25:16
質問
をどのように宣言すればよいのでしょうか?
main()
メソッドを作成する方法を教えてください。
こんな感じで。
public static void main(String[] args)
{
System.out.println("foo");
}
あるいはこんな感じ。
public static void main(String... args)
{
System.out.println("bar");
}
とは、実際にはどのような違いがあるのでしょうか?
String[]
と
String...
があれば教えてください。
解決方法は?
<ブロッククオートJavaでmain()メソッドをどのように宣言すればよいですか?
String[]
と
String...
は内部的には同じもの、つまりStringの配列です。
違いは、varargs パラメータを使用した場合 (
String...
のようにメソッドを呼び出すことができます。
public void myMethod( String... foo ) {
// do something
// foo is an array (String[]) internally
System.out.println( foo[0] );
}
myMethod( "a", "b", "c" );
// OR
myMethod( new String[]{ "a", "b", "c" } );
// OR without passing any args
myMethod();
そして、パラメータをString配列として宣言すると 必須 はこのように呼び出します。
public void myMethod( String[] foo ) {
// do something
System.out.println( foo[0] );
}
// compilation error!!!
myMethod( "a", "b", "c" );
// compilation error too!!!
myMethod();
// now, just this works
myMethod( new String[]{ "a", "b", "c" } );
とは、実際には何が違うのでしょうか?
String[]
とString
...もしあれば?
規約では
String[]
をメインメソッドのパラメータとして使用しますが
String...
varargs を使用すると、パラメータに配列を指定してメソッドを呼び出すのと同じように、 パラメータ自体もメソッド本体の中で配列になるので、これも動作します。
重要なことは、vararg を使用する場合、それはメソッドの最後のパラメータである必要があり、vararg パラメータは 1 つだけ持つことができるということです。
バラグについては、こちらで詳しく解説しています。 http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
関連
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] init-paramとcontext-param
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない