有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无法访问Java中的类方法

嗨,我创建了以下类

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类中,我创建了一个小时数组,我想尝试调用函数setSummary,但它不起作用:

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

hours.setSummary(test);

它说无法解析方法集合摘要

我做错了什么

谢谢


共 (4) 个答案

  1. # 1 楼答案

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

    for(Hour i : hours)
    {
        i.setSummary(test);
    }
    
  2. # 2 楼答案

    在您给出的示例中hours是一个数组,而数组不公开方法setSummary(String summary)

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

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

    hours是一个数组,而不是类Hour的实例。这就是为什么会出现编译错误。要调用setSummary(),需要创建Hour类的实例。也许你想做一些事情,比如:

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

    注意:我假设data.length()charshortbyteintdata.length() > 0类型

  4. # 4 楼答案

    hours是一个数组,几乎不可能有setSummary

    你可能想要这样的东西:

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