私のjava学習-mainメソッドパラメータの問題

1713 ワード

今日は一つの問題を見ましたが、友達が質問しました。main方法ではパラメータをテストしたいです。結果はいつもjava.lang.ArayIndexOutOfBounds Exceptionです。エラーはどこにあるか分かりません。元のプログラムはこうです。
public class Test2{
    public static int find_e(String[][] x, String y){
        for(int k = 0; k < x.length; k ++)
            if(x[k][0].equals(y))
                return k;
        return -1;
    }
     public static int find_c(String[][] x, String y){
        for(int k = 0; k < x.length; k ++)
            if(x[k][1].equals(y))
                return k;
        return -1;
    }
    public static void main(String[] args){
        String[][] x = {
            {"good", " "}, {"bad", " "}, {"work", "  "}};
        int k;
        String in = args[0];
        if((k = find_e(x, in)) != -1)
            System.out.println(x[k][1]);
        else if((k = find_c(x, in)) != -1)
            System.out.println(x[k][0]);
        else 
            System.out.println("    ");
    }    

}
最初に見たのですが、呼び出し方法の時にnewのようなオブジェクトがなくて直接的に呼び出す方法があると思いました。ヒントの内容はメソッドエラーではなく、アレックス[0]ここで呼び出したときにエラーが発生しました。分かりました。プログラムの後ろのパラメータを呼び出す時にエラーが発生しました。ネットで資料を調べて、メールの方法の中でパラメーターの呼び出しの問題、やはり多くの達人はすべて解答を出しました。mainメソッドにはパラメータが必要ですが、パラメータなしで直接運転すると、配列オフのエラーメッセージが表示されます。mainメソッドにはパラメータがありますが、String[]argsはもともと複数の文字列パラメータを受信することができます。なぜデフォルトの書き方は次のようですか?パラメータに余裕があるということです。
public static void main(String[] args){
ただし、パラメータを定義しており、プログラム内で呼び出した時は配列形式で、実際に実行している時はパラメータがないため、プログラムは配列外れエラーを提示します。解決策としては、コマンドラインモードであれば、java Test 2 goodを使ってパラメータを持って運転すれば大丈夫です。netbeansまたはeclipseであれば、運行の方式で調整を行う必要があります。netbeansの中に実行->設定項目の設定->がカスタマイズされています。カスタマイズを選択して画面の中にパラメータの欄に運転時のパラメータを記入すればいいです。再実行プログラムは正常に進みます。