我的目录中有 2 个文件。第一个文件名为“Percolation.java”,其内容如下:
public class Percolation {
public Percolation(int n) {
System.out.println("Going to create a Percolation object with n = " + n);
}
}
第二个文件名为“PercolationStats.java”,其内容为:
public class PercolationStats {
public PercolationStats(int n, int trials) {
Percolation percolation = Percolation(n);
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int T = Integer.parseInt(args[1]);
System.out.println("Going to make " + args[1] + " experiments with " + args[0] + "-sized grid");
PercolationStats percolationStats = new PercolationStats(n, T);
}
}
当我从此目录运行命令
javac-algs4 *.java
或javac-algs4 Percolation.java PercolationStats.java
或javac-algs4 PercolationStats.java Percolation.java
时,或者即使我先运行javac-algs4 Percolation.java
然后运行javac-algs4 PercolationStats.java
它总是会抛出错误:
PercolationStats.java:10: error: cannot find symbol
Percolation pp = Percolation(n);
^
symbol: method Percolation(int)
location: class PercolationStats
不知道为什么它不喜欢符号“P”,它只是一个常规的UTF-8英文字母“P”。请帮助我以某种方式在 PercolationStats.java 文件中导入 Percolation 类。
我使用 MacOS Ventura 13.5.2。
java -version
命令输出:
java version "15.0.2" 2021-01-19
Java(TM) SE Runtime Environment (build 15.0.2+7-27)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)
我还安装了我想学习的课程主持人推荐的java编程环境这里。
您遇到的错误是由于 PercolationStats 类中 Percolation 类的构造函数使用不正确造成的。
要解决此问题,您需要在创建 Percolation 类的新实例时使用 new 关键字。更新 PercolationStats 类中的以下行:
Percolation percolation = Percolation(n);
至:
Percolation percolation = new Percolation(n);
这将使用您定义的构造函数正确创建 Percolation 类的新实例。
进行此更改后,您可以使用 javac 命令编译代码。确保 Percolation.java 和 PercolationStats.java 位于同一目录中,然后运行以下命令:
javac Percolation.java PercolationStats.java
这应该成功编译两个文件,没有任何错误。