编译器找不到我的'getters'

时间:2013-04-07 01:50:29

标签: java

我正在使用Player类和Team类为棒球队建模。玩家拥有每个玩家的统计数据(名称,数量,击球率等),并且球队拥有一系列球员对象,球队名称和球队规模。

我在Team.java中创建了一个Player对象数组,并使用一个简单的'for'循环来搜索我的数组。但是,我得到多个编译时错误,说编译器找不到任何我在Player.java中的'getters'。

这是我的battingAverage方法,它在Team.java中使用了这样一个循环:

public double battingAverage () {
    double sum = 0.0;
    for (int i = 0; i<size; i++) {
        sum = sum + team[i].getAverage;
    }
    return (sum / size);
}

这是Player.java中的'getter'

public double getAverage () {
    return average;
}

(平均值被声明为私有动态字段,并由构造函数赋予值)

这是编译器给我的错误:

./Team.java:21: cannot find symbol
symbol  : variable getAverage
location: class Player
        sum = sum + team[i].getAverage;
                           ^

我在Team.java(getPosition,getName等)中使用的所有“getters”都会重复这种类型的错误。

但是,我知道编译器将team [i]识别为单个Player对象,因为我也收到以下错误:

    ./Team.java:21: operator + cannot be applied to double,Player.getAverage
            sum = sum + team[i].getAverage;
                  ^

所以在我看来,由于某种原因,getAverage刚好无法在Player.java中找到,我无法弄清楚原因。

非常感谢您提供的任何帮助。

4 个答案:

答案 0 :(得分:6)

而不是

sum = sum + team[i].getAverage;

使用

sum = sum + team[i].getAverage();

这是一个没有参数的方法,而不是您正在访问的公共字段。

答案 1 :(得分:1)

你应该使用

sum = sum + team[i].getAverage();

答案 2 :(得分:0)

在循环中调用getAverage时,省略了括号。所有方法调用必须后跟括号,即使它们不带参数。

答案 3 :(得分:0)

您不是访问属性,而是调用方法。这就是错误显示的原因。对此change sum = sum + team[i].getAverage;

sum = sum + team[i].getAverage();