定义的类给出未定义的类错误

时间:2018-08-02 22:19:40

标签: java

即使方法已定义,我也无法得到方法showTotal的未定义方法。

public class Test {
public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);
 String command ;
 Machine M = null;
    while(true)
    {
        System.out.println("Enter your command");
        command = sc.next();
        String[] commands = command.split(" ");
        if (commands[0] == "create" )
        {
           M = new Machine (commands[1],commands[2]);
        }

        else if (commands[0] == "total" )
        {
            M.showTotal();
        }



    }
}
}

1 个答案:

答案 0 :(得分:0)

您需要为扫描仪调用nextLine()而不是next()。

    command = sc.next();
    String[] commands = command.split(" ");

您将无法分割字符串命令,因为它不能再有空格,因为您正在使用next()。更改它,这样您就可以抓住整条线

    command = sc.nextLine(); //grab the line
    String[] commands = command.split(" ");

然后,如果您的语句需要对字符串使用equals()方法,则==不会以您希望的方式比较Java中的字符串。您还需要确保通过split返回的数组的长度> = 3,以防止索引超出范围,并在调用showTotal()时检查M是否为null

    if (commands[0].equals("create") && comands.length() >= 3)
    {
       M = new Machine (commands[1],commands[2]);
    }

    else if (commands[0].equals("total") && M != null)
    {
        M.showTotal();
    }