Javaで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...
は内部的に同じものです。 e。、文字列の配列。違いは、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();
パラメーターを文字列配列として宣言する場合、[〜#〜] must [〜#〜]この方法で呼び出します。
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...
を使用しても動作します。可変引数を使用する場合は、パラメーターとして配列を使用してメソッドを呼び出し、パラメータ自体はメソッド本体内の配列になります。
1つの重要なことは、varargを使用する場合、それはメソッドの最後のパラメーターである必要があり、1つのvarargパラメーターしか持てないということです。
可変引数の詳細については、こちらをご覧ください: http://docs.Oracle.com/javase/1.5.0/docs/guide/language/varargs.html
String...
はString[]
に変換されます。主な違いは、varargメソッドを2つの方法で呼び出すことができることです。
method(a, b, c);
method(new String[] {a, b, c});
一方、次のような配列を受け入れるメソッドを呼び出す必要があります。
method(new String[] {a, b, c});
main
メソッドの場合、違いはありません。
String[] args
は配列引数を取ります。
String... args
は、引数として任意の数の文字列を取り、それらから配列を作成します。
例を通してその違いを理解してみましょう
mymethod(String... str)
vs
mymethod(String []str)
メソッドgetidはint型の配列を取ります。
したがって、getIdメソッドを呼び出す場合、配列を渡す必要があります。
配列を渡すには、匿名配列を作成するか、単に最初に配列を作成して、次の例でこれを行うように渡します。
class test
{
public void getid(int []i)
{
for(int value:i)
{
System.out.println(value);
}
}
public static void main(String []arg)
{
int []data = {1,2,3,4,5}
new test().getid(data);
}
}
次に、トリプルドットを使用する-> mymethod(int ... i)
メソッドにはまだ配列が必要ですが、違いはメソッドに直接値を渡すことができ、「...」が自動的に配列に変換できることです
以下の例をご覧ください
class test
{
public void getid(int ...i)
{
for(int value:i)
{
System.out.println(value);
}
}
public static void main(String []arg)
{
new test().getid(1,2,3,4);
}
}
「[]」の代わりに「...」を使用する利点
1)保存メモリ:-
例ではmymethod(int [])を使用
mainメソッド「Data []」で配列を作成すると、新しいオブジェクトが作成され、メモリ内にスペースが確保されます
メソッドを作成し、次のような引数を定義するとき:-
getid(int [])->これはメモリ内に別のオブジェクトを作成するので、メモリ内に互いに同じ2つのオブジェクトがあります。
2)「...」の使用中は何も渡すことができません
例2では、「getid」メソッドの呼び出し中に何も渡すことができず、エラーを出さずに機能します。これは、プログラムをより安定させるのに非常に役立ちます
.
.
.
public static void main(String []arg)
{
new test().getid();
}
.
.
.
しかし、「getid」メソッドを呼び出し、「[]」を使用中に引数を渡さなかった場合、コンパイル時にエラーが表示されます
String[]
は文字列の配列です。したがって、String
データ型の多くの変数のコンテナー。例えば:
String[] strArray = new String[2];
str[0] = "Hello";
str[1] = "World";
String str = "Hello World";
これでクエリがクリアされることを願っています:)