2017-05-01 4 views
0

public static void main(String[] args) 私は、main関数は、指定されたコマンドライン引数をStringオブジェクトの配列として含むパラメータargsを取ります。main関数はStringの代わりにStringを取ることができます[]

  • String[] args以外のパラメータでメインテイクが表示されません。なぜStringまたはIntegerの配列がないのですか?
  • main関数の入力を指定する方法がある場合は、例を挙げてください。あなたの質問へ
+4

コマンドライン引数は一連の文字列なので、文字列配列として与えられます。それがあなたが望むなら、プログラムの中で整数として解析することができます。 – khelwood

+2

これは 'String []'や 'String ... 'でもかまいません。それはJLSがそうしなければならないことだからです。 – azurefrog

答えて

3

回答:NO

詳細:

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

javaコマンドは、Javaアプリケーションを起動します。これは、Javaランタイム環境を起動し、指定されたクラスをロードし、そのクラスのメインメソッドを呼び出すことで行います。

メソッドはpublicおよびstatic宣言されていて、値を返さないでください。は、文字列配列をパラメータとして受け入れる必要があります。変更もできないをあなたはすでにそれがメインのメソッド定義である知っているよう

のpublic static無効メイン(文字列[] args)

2

とあなた:メソッドの宣言は次の形式を持っています。しかし、あなたはそれが代入演算子の左側にタイプに変換する有効な形式でありますことを考えると、他のプリミティブ型にargs配列内の要素を変換することができます。

そのうちの1つは、これを達成するための複数の方法、あります

int input = Integer.valueOf(args[0]); 
1

なぜ文字列または整数の配列は?

整数の配列ではない可能性がある引数のサブセットのみをカバーします(解析してIntegerを取得できますが、整数であるかどうかを確認する必要があります。そうでない場合はNumberFormatExceptionが返されます) 。

文字列配列ではなく文字列ではありません。なぜなら、コマンド引数を1つの大きな文字列にするのではなく、実際にはコマンド引数を別々に扱う必要があるからです。

VMがmainメソッドとして認識する代替シグネチャはありません。メインのシグネチャは1つしかありません。public static void main(String[] args)

0

String [] args以外のパラメータでメインテイクが表示されません。なぜ文字列かIntegerの配列ではないのですか?

はい、あなたは、パラメータとして任意のStringIntegerを取ることができますが、それは別の機能main()方法の代わりに、あなたのプログラムを起動するには、Javaで使用されるものになるだろう。コンパイル後、まずpublic static void main(String[] args){}メソッドをjavaで検索します。パラメータを変更すると、プログラムはまったく実行されません。配列を使用すると、int[]にはの値しか格納されないので、には1つの値しか持たないような、配列が許可する特定のタイプの値だけが含まれます。

メイン関数の入力を指定する方法がある場合は、例を挙げてください。

はい、コマンドライン(ウィンドウ用)とターミナル(linux/unix用)を使用して引数を渡す方法があります。

  1. は、パラメータとともにjavac Filename.java
  2. 実行するJavaプログラムを使用して、Javaプログラムをコンパイルjava FileName param1 param2 param3 (PARAM1、PARAM2、param3はあなたが渡したいパラメータです)。
1

いいえ、あなたの主な方法は、単に文字列を取ることができない、mainメソッドは配列構文やvaragrs構文を使用して文字列の配列を受け入れる必要があり、クラスの初期化が完了した後、JSL §12.1.4. Invoke Test.main

最後に、次の読みテスト( の間に他のロード、リンク、および初期化に が発生した場合)、Testのmainメソッドが呼び出されます。

メソッドmainは、public、static、およびvoidと宣言する必要があります。 は、仮引数(§8.4.1)を指定する必要があります。宣言された型は の配列です。したがって、次の宣言のいずれかが許容です:

public static void main(String[] args)

public static void main(String... args)

だから、あなたは構文ではなく、単なる文字列のどちらかを選ぶことができます。

ちょうどあなたの情報のために、public static void main(String args)のようなメソッドを作成できますが、それはJVMが出発点に見えるクラスの「メイン」メソッドとは見なされません。したがって、あなたのクラスに "main"メソッドを持たせたい場合は、上記の構文のいずれかを選択する必要があります。

関連する問題