首页 > 解决方案 > 什么是“未解决的编译问题”?

问题描述

我刚开始学习java和vsc。我已经搜索并看到了所有具有“未解决的编译问题:”的问题。但我找不到我的问题。

这是我的错误信息:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        name cannot be resolved or is not a field

        at Student.<init>(Student.java:10)
        at ShowTrans.main(ShowTrans.java:3)

我安装了所有的扩展、调试程序。

Student class

    public class Student {

    String studentName;
    int money;

    public Student() {
    }

    public Student(String name, int money) {
        this.name = studentName;
        this.money = money;
    }

    public void takeBus(Bus bus) {
        bus.take(1000);
        money -= 1000;
    }

    public void takeSubway(Subway subway) {
        subway.take(1500);
        money -= 1500;
    }

    public void showInfo() {
        System.out.println(studentName + "left money : " + money");
    }
}

巴士类

public class Bus {
int money;
int busNumber;
int passenger = 0;

public Bus() {
}

public Bus(int num) {
    this.num = busNumber;
}

public void take(int money) {
    this.money += money;
    passenger++;
}

public void showInfo() {
    System.out.println("Bus" + busNumber + "'s passenger is" + passenger + ", money is" + money");
}}

ShowTrans class

public class ShowTrans {
public static void main(String[] args) {
    Student james = new Student("James", 10000);

    Bus bus100 = new Bus(100);
    james.takeBus(bus100);
    james.showInfo();
    bus100.showInfo();
}}

标签: javavisual-studio-code

解决方案


我刚开始学习java和vsc。我已经搜索并看到了所有的问题Unresolved compilation problem

这意味着:很可能,您在 IDE 中单击了运行按钮,尽管您的 IDE 向您显示编译错误。

在您的情况下,有一个简单的错字:您很可能将名为name的东西重命名为studentName

准确地说:你在这里倒退了:

this.name = studentName;

那应该是

this.studentName = name;

所以,再次:您要求您的 IDE 运行(由于某些更改)不一致的代码。

解决方案:

  • 避免这样做
  • 含义:进行更改时,请确保您的整个项目编译无错误,然后再执行其他任何操作

除此之外,学习使用 IDE 的功能。例如,可能有重构代码的函数。这包括:重命名字段。因此,当您在一个地方更改名称时,该名称的任何用法都会自动更新。


推荐阅读