0
public void processString(String input) throws InvalidInputException {//processes the string to check if the characters correct and what method it should go to
    for (char x : input.toCharArray()) {//for loop which checks each char
        switch (x) {

        case 'L' :  turnLeft();
                    break;
        case 'R' :  turnRight();
                    break;
        case 'M' :  moveRover();
                    break;

        default :   throw new InvalidInputException("Invalid signal");

        }
    }
}

我有这个代码但是我得到一个找不到符号错误我做错了什么?

我收到此错误消息

    public void processString(String input) throws InvalidInputException {//processes the string to check if the characters correct and what method it should go to
                                                   ^
  symbol:   class InvalidInputException
  location: class marsRover
marsRover.java:47: error: cannot find symbol
            default :   throw new InvalidInputException("Invalid signal");
                                  ^
  symbol:   class InvalidInputException
  location: class marsRover
2 errors
4

2 回答 2

0

在您的代码中导入 InvalidInputException

于 2013-09-02T13:38:28.697 回答
0

问题是java编译器不知道InvalidInputException你指的是哪个类。有两种可能:

  • 你还没有声明这个InvalidInputException类。如果您打算自己声明它,它应该ExceptionException. 您使用它的方式意味着它必须(至少)有一个将消息作为参数的构造函数。

  • 该类InvalidInputException已在不同的包中声明,并且您尚未 -import编辑该类(或包)。(如果该类与您的类在同一个包中声明,则marsRover无需导入它...)

我们可以排除第三种可能性……您已经导入了该类,但它不在类路径中……因为那会为该import语句提供编译错误消息!


虽然我引起了您的注意,但您似乎已将其用作marsRover类名。这是违反 Java 风格的。Java 类名应该是“驼峰式”,以大写字母开头。

于 2013-09-02T14:19:00.313 回答