Ich möchte wissen, wie ich ein Programm erstellen kann, das Befehlszeilenargumente ohne ein Befehlszeilenargument funktioniert.ArrayIndexOutOfBoundsException beim Überspringen von Befehlszeilenargument
Es ist die letzte else if
-statement, die ich brauche mit Hilfe. Wie kann ich erreichen, was ich hier versuche?
P.S Ich habe keine Antwort darauf gefunden, wenn ich die Antworten auf den Beitrag lese, dies ist ein "mögliches Duplikat" von.
Hier ist mein Code:
import java.util.Scanner;
import java.io.File;
import java.util.ArrayList;
class LesInformasjon{
public static void main(String[]args) throws Exception{
Scanner fil = new Scanner(new File("informasjon.txt"));
ArrayList<Bil> biler = new ArrayList<>();
while(fil.hasNextLine()){
String line = fil.nextLine();
String ord[] = line.split(" ");
String bilType = ord[0];
String kjennemerke = ord[1];
Bil bil = null;
//Tester typen bil, lager bil og setter inn i ArrayList
if(bilType.equals("EL")){
double batteriKapasitet = Double.parseDouble(ord[2]);
bil = new Elbil(kjennemerke, bilType, batteriKapasitet);
}else if(bilType.equals("LASTEBIL")){
double utslipp = Double.parseDouble(ord[2]);
double nyttevekt = Double.parseDouble(ord[3]);
bil = new Lastebil(kjennemerke,bilType, utslipp, nyttevekt);
}else if(bilType.equals("PERSONBIL")){
double utslipp = Double.parseDouble(ord[2]);
int antGodkjenteSeter = Integer.parseInt(ord[3]);
bil = new Personbil(kjennemerke, bilType, utslipp, antGodkjenteSeter);
}
biler.add(bil);
}
if(args[0].equals("EL")){
for(Bil bil : biler){
if(bil instanceof Elbil){
//if(bil.bilType.equals("EL")){
System.out.println(bil);
System.out.println(" ");
}
}
//System.out.println("Print Elbiler");
}else if(args[0].equals("FOSSIL")){
for(Bil bil : biler){
if(bil instanceof Fossilbil){
//if(bil.bilType.equals("LASTEBIL") || bil.bilType.equals("PERSONBIL")){
System.out.println(bil);
System.out.println(" ");
}
}
}else if(args.length == 0){ //tried else if(args[0] == null as well
for(Bil bil : biler){
System.out.println(bil);
System.out.println(" ");
}
}
}
}
Wenn Sie die anderen Klassen brauchen, kann ich Ihnen diejenigen geben. Sie werden jedoch nicht benötigt, um die Frage zu beantworten.
Mögliche Duplikat [Was ein java.lang.ArrayIndexOutOfBoundsException verursacht und wie kann ich das verhindern?] (Http: // Stackoverflow .com/questions/5554734/what-causes-a-java-lang-array-indexoutofboundexception-and-how-do-i-prevent-it) – Maverick