无法访问Java中的Class方法

时间:2016-04-14 15:03:45

标签: java methods

您好我已经创建了以下课程

public class Hour {

    private long mTime;
    private String mSummary;
    private double mTemparature;
    private String mIcon;


    public long getTime() {
        return mTime;
    }

    public void setTime(long time) {
        mTime = time;
    }

    public String getSummary() {
        return mSummary;
    }

    public void setSummary(String summary) {
        mSummary = summary;
    }

}

然后在另一个java类中我创建了一个Hour数组,我想尝试调用函数setSummary,但它不起作用:

  Hour[] hours = new Hour[data.length()];

hours.setSummary(test);

它说不能解决方法setSummary。

我在这里做错了什么?

谢谢

5 个答案:

答案 0 :(得分:6)

hours是一个数组而不是类Hour的实例,这就是编译错误的原因。要调用setSummary(),您需要创建Hour类的实例。也许你想做类似的事情:

Hour[] hours = new Hour[data.length()];
hours[0] = new Hour();
hours[0].setSummary(test);

注意:我认为data.length()属于charshortbyteint和{{{ 1}}。

答案 1 :(得分:2)

hours是一个数组,几乎没有机会拥有setSummary

你可能想要这样的东西:

for(int i = 0; i < hours.length; i++) {
    (hours[i] = new Hour()).setSummary(test);
}

答案 2 :(得分:2)

@Nant是对的。你想要hours[i].setSummary(test)。如果要将其应用于数组中的所有内容,请使用

for(Hour i : hours)
{
    i.setSummary(test);
}

答案 3 :(得分:1)

小时是一个类型为小时的数组。您可以在各个元素上调用方法,例如

hours[0].setSummary(test);

但不在阵列本身。要实例化一小时,只需调用new:

Hour hour = new Hour();
hour.setSummary(test);

答案 4 :(得分:0)

在示例中,您提供的hours是一个数组,数组不会公开方法setSummary(String summary)

如果要将摘要设置为数组中的所有元素,请尝试以下方法:

Hour[] hours = new Hour[data.length()];
// fill your array here
for(Hour hour : hours){
    hour.setSummary(test);
}