Parser类中缺少return语句错误

时间:2014-02-07 23:03:47

标签: java split return

所以我有一个Parser类,它读入用户输入并在每个“/”处拆分它。这是我第二次创建这样的类,但这次我必须根据split [0]的值又是第一个值来解析字符串两种不同的方式。我不知道要为返回类型输入什么,因为所有类正在执行的是获取输入的字符串,在每个“/”处分割。然后将这些输入分配给其他类中的变量。任何帮助,将不胜感激。感谢

这是班级

公共课DrinkParser {

public static Drink parseStringToDrink(String lineToParse){ //ERROR: missing return statement.

    String regex = "[/]";
    String [] split = lineToParse.split(regex);


    if ("Box".equals(split[0]) || "box".equals(split[0])){

       DrinkInBox dIB = new DrinkInBox(split[1], Double.parseDouble(split[2]), Integer.parseInt(split[3]), Integer.parseInt(split[4]), Integer.parseInt(split[5]));
       return dIB;

    }

    if("Cylinder".equals(split[0]) || "cylinder".equals(split[0])){

        DrinkInCylinder dIC = new DrinkInCylinder(split[1], Double.parseDouble(split[2]), Integer.parseInt(split[3]), Integer.parseInt(split[4]));
        return dIC;
    }

}

}

上次我写了这样一个类时,我所要做的只是在字符串中读取,而不管split [0]是什么......以下是该类的内容。

公共类BankParser {

public static Bank bankParser(String lineToParse){ //parses the string and sets the bankName,bankID, and bankAddress based off the inputed String

    String regex = "[/,]"; 
    String[] split = lineToParse.split(regex);
    Bank b = new Bank();
    b.setBankName(split[0]); //sets the first split to the BankName
    b.setBankID(split[1]); // sets the second split to the BankID
    b.setBankAddress(split[2], split[3]); //set the city to the third split and the state to the fourth split in BankAddress
    return b;

}

}

1 个答案:

答案 0 :(得分:0)

如果split[0]既不是"Cylinder"也不是"Box"怎么办?该案件没有return陈述。在这种情况下,这可能是一个错误,所以抛出一个IllegalArgumentException

    throw new IllegalArgumentException("Bad drink type: " + split[0]);
} // end of parseStringToDrink