我在使用以下代码时遇到了一些问题:
private ArrayList<TemperatureSensor> sensors = new ArrayList<TemperatureSensor>();
//[...]
private double getAverageTemperature() {
double addition = 0;
for(TemperatureSensor sensor : this.sensors)
addition += sensor.getTemperature();
return addition / this.sensors.size();
}
}
方法getTemperature在TemperatureSensor类中,它的定义如下:
public int getTemperature() {
// random number [5,40]
return new Random(System.currentTimeMillis()).nextInt(36)+5;
}
在getAverageTemperature()方法中,我收到一条错误,指出“温度传感器类型的方法getTemperature()未定义”
另外,如何从抽象类调用两个类具有的特定方法,并将它们的对象存储在ArrayList中?
提前致谢。
答案 0 :(得分:1)
代码看起来不错。一切都编译好吗?一切都是新编的吗?根据您的描述,我假设您的类路径中有一个旧版本的类还没有该方法。
答案 1 :(得分:0)
在代码看起来很好的情况下,再次清理并编译代码。关于第二个问题,请查看下面的示例
public abstract class A {
public abstract void method();
}
public class B extends A{
public void method(){
//code
}
}
public class C extends A {
public void method(){
//code
}
}
public class Main{
public static void main(String args[]){
ArrayList<A> obj=new ArrayList<A>();
obj.add(new B());
obj.add(new C());
for (A a : obj) {
a.method(); // it will call respective method of B and C class
}
}
}