我正在做一个试图学习基本java的教程。我有99%的把握我已经正确地遵循了教程,但是我得到了一堆这样的错误消息:
C:\Users\krist\IdeaProjects\Hello World\src\Main.java:10:45
java: ')' expected
C:\Users\krist\IdeaProjects\Hello World\src\Main.java:11:28
java: not a statement
C:\Users\krist\IdeaProjects\Hello World\src\Main.java:11:36
java: ';' expected在本教程中,他们不使用这些符号,但代码在本教程中仍然有效。有没有可能是java中的一些更新改变了一些东西,或者我是否遗漏了一些软件来使其工作?
以下是Car.java的代码:
import java.awt.*;
public class Car {
// Data types:
// int -> 1, 2, 3...
// double -> decimal 34.5, 32.1
// String -> "a1a2" or "Hello World"
// Color -> from awt library
// Boolean -> true/false
double averageMilesPerGallon;
String licencePlate;
Color paintColor;
boolean areTaillightsWorking;
public Car(double inputAverageMPG,
String inputLicencePlate,
Color inputPaintColor,
boolean inputAreTaillightsWorking) {
this.averageMilesPerGallon = inputAverageMPG;
this.licencePlate = inputLicencePlate;
this.paintColor = inputPaintColor;
this.areTaillightsWorking = inputAreTaillightsWorking;
}
public void changePaintColor(Color newPaintColor) {
this.paintColor = newPaintColor;
}
}下面是main.java的代码:
import java.awt.*;
import static java.awt.Color.*;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
System.out.println("Markus");
Car myCar = new Car (inputAverageMPG: 25.5,
inputLicencePlate: "1BC32E",
inputColor.BLUE,
inputAreTaillightsWorking: true);
Car sallyCar = new Car (inputAverageMPG: 13.9,
inputLicencePlate: "3D20BN",
inputColor.BLACK,
inputAreTaillightsWorking: false);
System.out.println("My Car's licence plate: " +myCar.licencePlate);
System.out.println("Sally's Car's licence plate: " +sallyCar.licencePlate);
}
}很抱歉,如果这个问题表达得不好,我仍然不知道所有的技术术语都能很好地解释这个问题。
发布于 2020-09-22 16:48:11
这是对构造函数/方法的无效调用:
Car myCar = new Car(inputAverageMPG: 25.5,
inputLicencePlate: "1BC32E",
inputColor.BLUE,
inputAreTaillightsWorking: true);取而代之的是:
Car myCar = new Car(25.5, "1BC32E", ...发布于 2020-09-22 16:51:03
new Car(inputAverageMPG: 25.5,
inputLicencePlate: "1BC32E",
inputColor.BLUE,
inputAreTaillightsWorking: true);这是不对的。Java没有这样的命名参数。
问题是你使用的是IntelliJ IDEA,它给你提供了参数提示。它看起来像这样:

如果仔细观察,可以看到参数名称是以另一种字体绘制的。
不幸的是,这个特性给新手带来了很多困惑。
https://stackoverflow.com/questions/64006134
复制相似问题