2017-11-26 8 views
-6

なぜJavaでは、mainメソッドは、String[] argsという形式の引数を取ることができますか?つまり、文字列なぜJavaのみがMainメソッドの引数としてString [] argsを許可するのですか?

の配列

そして、なぜJavaはint型の配列を許可または

public static void main(int[] args) 

または

public static void main(double[] args 

のようにダブル、なぜそれが単一許可していませんしません。 stringの配列ではなく、stringまたはintまたはfloat?ような何か:

public static void main(String args) 

または

public static void main(int i) 
+0

これは 'String []'のみを許可するためです。 – luk2302

+4

コマンドラインでプログラムの引数として渡すものはすべて文字列として表すことができるためです。倍数や整数としてではありません。 –

+0

まさに私の質問はなぜString []だけなのでしょうか? @ luk2302 – Prometheus

答えて

3

これは、コマンドラインでJavaプログラムを実行する方法を示します。

java YourMainClass 

コマンドライン引数は、後に来る:

java YourMainClass arg1 arg2 arg3 

これは、args文字列配列には、"arg1","arg2"および"arg3"が含まれます。 argsアレイをint[]にすると、arg1はどのようにintに入れられますか?

JVMの観点からは、コマンドライン引数をStringに入れるのが最も安全な方法です。ユーザーが入力したものは、charの束になるはずです。他の間接ローディング、リンク、及び初期化が が発生している可能性があり 時クラスTest(の初期化が完了した後に最後

:JLS、

セクション12.1.4 1として

)、Testのメインメソッドが呼び出されます。

メソッドmainは、public、static、およびvoidと宣言する必要があります。 は、宣言された型がの配列 の文字列である仮パラメータ(§8.4.1)を指定する必要があります。

関連する問題