2011-02-01 11 views
0

可能性の重複:
how to use (String [] [] args) in javapublic static void main(String [] [] args)を使用できますか?

たちは、2Dアレイ用のJavaでpublic static void main(String [] [] args)を使用することはできますか?

+0

試してみるとどうなりますか? –

+1

あなたの他の投稿に5つの回答がありました:http://stackoverflow.com/questions/4860165/how-to-use-string-args-in-javaこれらの5つの回答があなたの_actual_質問にどのように対処していませんでしたか? (私はあなたが何を求めているのか分からないが、明らかに英語は母国語ではないと思うが、あなたが望むものについてもっと詳しく説明できることを願っている) – sarnold

+0

私はこの質問が違うと思う。主な方法。 – Bozho

答えて

4

できません。 2d配列に収まるようにコマンドライン引数をどのように指定しますか? main(..)メソッドは、プログラムの呼び出し時に指定されたコマンドライン引数を渡すJavaランタイムによって呼び出されます。

3

確かに、あなたは2Dの配列を受け取り、独自のmainメソッドを宣言することができますが、それはシグネチャを持つメソッドを探しますので、それは、起動時にJVMによって自動的に実行されることはありません。

メインメソッドの詳細については、Hello World tutorialを参照してください。

0

何あなたがメイン(文字列[] args)をメソッドをcan't.becauseは、JVMのための特別な方法ではありません、このシグネチャを持つ

主な方法を探しています:3つの方法があります

public static void main(String[] args) { 
} 
5

  1. クラシックのJavaスタイル

    :あなたは、メインメソッドのパラメータを定義することができます
  2. Cスタイル

    public static void main(String args[]) 
    
  3. 新学校(ポストJDK1.5)のJavaスタイル

    public static void main(String ... args) 
    

これらのすべてが等価であり、VMは、あなたのクラスを開始しますこれらのシグネチャのいずれかを持つメソッドを検出した場合


は実際に、彼らは非常に同等ではありませんが、一つの小さな違いがあります:リフレクションを介してアクセスすると、Method.isVarArgs()は、最後のメソッドにtrueを返します。しかし、彼らはまだ、すべて同じシグネチャ(名前、パラメータ型、戻り値の型、可視性)

1

を持つ2つの主要な事実は、他の質問で指摘:

  • をあなたはそのシグネチャを持つメソッドを持つことができます。
  • エントリポイントとして使用することはできません。

あなたが本当に2次元配列を受け入れエントリポイントを持つようにしたいのであれば、あなたがこれを行う必要があります:あなたは、この場合、第2の方法を公開を宣言する必要はありません

public static void main(String[] args) { 
    String[][] args2d; 
    // some crazy code that parses args and initializes args2d with a 2D array 
    main(args2d); 
} 

public static void main(String[][] args) { 
    // your actual entry point here 
} 

注意しかし、もしあなたが本当にしたいのであれば、あなたはそれを行うことができます。

0

2次元配列は機能しません。文字列args []を使用する場合は、文字列引数の配列をコンパイラに送信しますが、2次元配列は使用できません。 あなたはClass not found例外を取得しようとしていますが、ファイルはコンパイルされます。

関連する問題