Java错误:无法从对象数组中找到符号
我环顾四周,试图通过重新编译我的其他类等来解决这个问题,但似乎没有任何效果 我有两个文件,在SensorDataDisplay.java中,我有以下代码:Java错误:无法从对象数组中找到符号,java,arrays,object,constructor,Java,Arrays,Object,Constructor,我环顾四周,试图通过重新编译我的其他类等来解决这个问题,但似乎没有任何效果 我有两个文件,在SensorDataDisplay.java中,我有以下代码: private SensorSim[] sensors; ... public void runSimulation(double numberOfSensors) { sensors = new SensorSim[numOfSensors]; int i = 0; for(i = 0; i<numOfSensor
private SensorSim[] sensors;
...
public void runSimulation(double numberOfSensors) {
sensors = new SensorSim[numOfSensors];
int i = 0;
for(i = 0; i<numOfSensors; i++) {
sensors[i].SensorSim(sensorNom, sensorErr);
}
}
这是工作时,我刚刚创建一个单一的sensorSim。我最近添加了sensorSims阵列,这是在我出现此错误时:
$ javac SensorDataDisplay.java
SensorDataDisplay.java:44: cannot find symbol
symbol : method SensorSim(double,double)
location: class SensorSim
sensors[i].SensorSim(sensorNom, sensorErr);
^
1 error
环顾四周,我发现它可能与旧的类文件有关,所以我删除并重新编译了其他文件SensorSim.class。我阅读的另一个可能的原因是关于范围的,但对我来说似乎没什么问题,不过我对Java还是新手。为什么会发生此错误 您正试图像这样调用构造函数:
sensors[i].SensorSim(sensorNom, sensorErr);
你不是这样做的。我怀疑你想要:
sensors[i] = new SensorSim(sensorNom, sensorErr);
您正在尝试像这样调用构造函数:
sensors[i].SensorSim(sensorNom, sensorErr);
你不是这样做的。我怀疑你想要:
sensors[i] = new SensorSim(sensorNom, sensorErr);
替换
sensors[i].SensorSim(sensorNom, sensorErr);
与
替换
sensors[i].SensorSim(sensorNom, sensorErr);
与
您尝试在SensorSim实例sensors[i]上运行一个名为SensorSimdouble、double的方法,该实例目前还不存在 如果您的意思是在每个阵列元素上创建SensorSim实例
sensors[i].SensorSim(sensorNom, sensorErr);
应成为:
sensors[i] = new SensorSim(sensorNom, sensorErr);
更重要的是,您的runSimulation方法将双精度作为参数,并使用该参数调整阵列传感器的大小=new SensorSim[numOfSensors];:此double将向下转换为int。您尝试在SensorSim实例sensors[i]上运行一个名为SensorSimdouble的方法,该方法在此时甚至不存在 如果您的意思是在每个阵列元素上创建SensorSim实例
sensors[i].SensorSim(sensorNom, sensorErr);
应成为:
sensors[i] = new SensorSim(sensorNom, sensorErr);
更重要的是,您的runSimulation方法将双精度作为参数,并使用该参数调整阵列传感器的大小=new SensorSim[numOfSensors];:此double将向下转换为int。由于以下代码行,您将收到错误:
sensors[i].SensorSim(sensorNom, sensorErr);
相反,这将起作用:
sensors[i] = new SensorSim(sensorNom, sensorErr);
请记住,传感器[i]就像有
SensorSim s;
s = new SensorSim(sensorNom, sensorErr);
由于以下代码行,您会收到错误:
sensors[i].SensorSim(sensorNom, sensorErr);
相反,这将起作用:
sensors[i] = new SensorSim(sensorNom, sensorErr);
请记住,传感器[i]就像有
SensorSim s;
s = new SensorSim(sensorNom, sensorErr);
完美无瑕。我在调试时将double改为int,但没有更改帖子。非常感谢。完美无缺。我在调试时将double改为int,但没有更改帖子。非常感谢。