Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
public class TestSample {
public static void main(String[] args) {
System.out.print("Hi, ");
System.out.print(args[0]);
System.out.println(". How are you?");
}
}
Wenn ich kompilieren Sie dieses Programm, ich bekomme diese Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
Auch, warum kann ich nicht eine args
akzeptiert ein int-array wie dieses:
public static void main(int[] args) {
Du musst angemeldet sein, um einen Kommentar abzugeben.
1. ArrayIndexOutOfBoundsException: 0
Es wurde ausgelöst, weil
args.length == 0
daherargs[0]
außerhalb des arrays der Bereich der gültigen Indexpositionen (erfahren Sie mehr über arrays).Fügen Sie einen Scheck für
args.length>0
um es zu beheben.2. Kommandozeilen-Argumente int
Werden Sie haben, um zu analysieren die Argumente zu
int[]
sich als Kommandozeilen-Argumente übergeben, werden nur alsString[]
. Um dies zu tun, verwenden Sie Integer.parseInt(), aber Sie müssen, exception-handling, um sicherzustellen, dass die Analyse ging OK (erfahren Sie mehr über die Ausnahmen). Ashkan ' s Antwort zeigt Ihnen, wie Sie dies tun.im Hinblick auf den zweiten Teil Ihrer Frage:
vom http://download.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html :
public static void main(String[] args)
und nichtpublic static void main(int[] args)
wenn Sie möchten, ints, müssen Sie analysieren, Sie aus den Argumenten.