我目前有一个类Printer
这是静态访问,但当我尝试编写项目后添加一个函数的类我得到error: cannot find symbol
。Java编译错误:找不到符号
我知道这通常是由错字,超范围引用和错误声明造成的,但这里的奇怪之处在于旧的方法工作得很好。
此代码有完全相同相同的结构,我自己的代码,它的工作原理:
import java.util.*;
import java.lang.*;
import java.io.*;
class Printer {
private static String errorTitle;
private static String regularTitle;
Printer(String regularTitle_) {
errorTitle = "Some error: ";
regularTitle = regularTitle_;
}
public static void printError(Exception e) {
System.out.println(errorTitle + e.getMessage());
}
public static void print(String message) {
System.out.println(regularTitle + message);
}
}
class Main {
public static void main(String[] args) {
new Printer("Message: ");
try {
throw new Exception();
}
catch(Exception e) {
//This works
Printer.print(e.toString());
//This generates a cannot find symbol error when compiling
Printer.printError(e);
// ^here
}
}
}
完整的错误信息是:
[javac] Compiling 1 source file to C:\Javaprojects\MyProject\alpha\build
[javac] C:\Javaprojects\MyProject\alpha\src\Main.java:35 error: cannot find symbol
[javac] Printer.printError(e);
[javac] ^
[javac] symbol: method printError(Exception)
[javac] location: class Printer
[javac] 1 error
这如果我将Printer.printError(e)
更改为,则工作良好。
这可能是什么原因?难道说我指的是编译类的某种缓存版本?
我在这里看到没有错误。 –
只是尝试干净。 – Rustam
我已经清理了这个项目并重新编译了好几次。错误仍然存在。我试图找出原因,但我完全没有想法 – sweerpotato