关于java:错误:此处不允许使用’void’类型

Error: 'void' type not allowed here

我正在学习使用课程,我的部分任务是做这个汽车课程。我在第6行收到一个错误,我试图打印类中方法的结果。我认为这意味着我试图打印一些不存在的东西,我怀疑这是里程法。我试着把它改成返回英里,但也没用。有什么想法吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class TestCar {
  public static final void main(String args[]) {

    Car c = new Car ();
    c.moveForward(4);
    System.out.println ("The car went" + c.mileage() +"miles."); // <-- L6
  }
}

class Car {
  public int miles = 2000;
  public void moveForward(int mf) {
    if (miles != 2000) {
        miles += mf;
    }
  }

  public void mileage() {
    System.out.print(miles);
  }
}


错误消息确切地告诉您出了什么问题——您试图从不返回结果的方法中提取结果。

相反,让mileage()方法返回一个字符串,而不是打印出一个字符串。

1
2
3
public String mileage() {
    return String.valueOf(miles);
}

我自己,我会让这成为一个getter方法,而不是:

1
2
3
public int getMiles() {
    return miles;
}


Car.mileage()是void,即,不返回任何内容。它需要返回一些东西,比如:

1
2
3
public int mileage() {
    return miles;
}