类无法识别Java中的方法

时间:2013-03-16 16:39:46

标签: java methods arraylist

我在使用以下代码时遇到了一些问题:

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中?

提前致谢。

2 个答案:

答案 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
        } 
    }        

}