A java class 在同一个包裹里找不到另一个
A java class can't find an other in the same package
我正在 ubuntu 中实施一个 java 程序,没有 IDE 将货币转换为欧元,我有 2 classes ConvertiEuro 和 Valuta 都在同一目录(包)称为 finanza,class ConvertiEuro 使用 class Valuta,当我尝试编译 Valuta.java 时它编译正确但是当我编译 ConvertiEuro.java 时出现错误说"ConvertiEuro.java:3: error: cannot find symbol"我不知道为什么这里是代码
package finanza;
public class Valuta {
private String nomeValuta;
private double totValuta;
public Valuta(String nomeVal, double totVal) {
nomeValuta = nomeVal;
totValuta = totVal;
}
public String getNomeValuta() {
return nomeValuta;
}
public double getTotValuta() {
return totValuta;
}
}
package finanza;
import finanza.Valuta;
public class ConvertiEuro {
private int valuteGestibili;
private int cont = 0;
private Valuta [] valutas;
public ConvertiEuro(int valuteGest) {
this.valuteGestibili = valuteGest;
this.valutas = new Valuta [this.valuteGestibili];
}
public boolean impostaValuta(Valuta val){
if(cont<valuteGestibili) {
this.valutas[cont] = val;
cont ++;
return true;
}
else {
return false;
}
}
}
这就是我的编译方式:javac ConvertiEuro.java
我强烈怀疑问题出在你的编译方式上。
ConvertiEuro.java
和 Valuta.java
都应该在名为 finanza
的目录中,理想情况下你应该从 parent 目录编译,所以所有编译器都知道在哪里可以找到同一个包中的其他代码。对于名为 finanza
.
的包,它 期望 在您当前所在目录下的 finanza
目录中找到一个源文件
虽然同时编译所有文件是最简单的:
javac finanza/*.java
...或者更好的是,使用 IDE 来为您管理这类事情。
我正在 ubuntu 中实施一个 java 程序,没有 IDE 将货币转换为欧元,我有 2 classes ConvertiEuro 和 Valuta 都在同一目录(包)称为 finanza,class ConvertiEuro 使用 class Valuta,当我尝试编译 Valuta.java 时它编译正确但是当我编译 ConvertiEuro.java 时出现错误说"ConvertiEuro.java:3: error: cannot find symbol"我不知道为什么这里是代码
package finanza;
public class Valuta {
private String nomeValuta;
private double totValuta;
public Valuta(String nomeVal, double totVal) {
nomeValuta = nomeVal;
totValuta = totVal;
}
public String getNomeValuta() {
return nomeValuta;
}
public double getTotValuta() {
return totValuta;
}
}
package finanza;
import finanza.Valuta;
public class ConvertiEuro {
private int valuteGestibili;
private int cont = 0;
private Valuta [] valutas;
public ConvertiEuro(int valuteGest) {
this.valuteGestibili = valuteGest;
this.valutas = new Valuta [this.valuteGestibili];
}
public boolean impostaValuta(Valuta val){
if(cont<valuteGestibili) {
this.valutas[cont] = val;
cont ++;
return true;
}
else {
return false;
}
}
}
这就是我的编译方式:javac ConvertiEuro.java
我强烈怀疑问题出在你的编译方式上。
ConvertiEuro.java
和 Valuta.java
都应该在名为 finanza
的目录中,理想情况下你应该从 parent 目录编译,所以所有编译器都知道在哪里可以找到同一个包中的其他代码。对于名为 finanza
.
finanza
目录中找到一个源文件
虽然同时编译所有文件是最简单的:
javac finanza/*.java
...或者更好的是,使用 IDE 来为您管理这类事情。