您好我已经创建了以下课程
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。
我在这里做错了什么?
谢谢
答案 0 :(得分:6)
hours
是一个数组而不是类Hour
的实例,这就是编译错误的原因。要调用setSummary()
,您需要创建Hour
类的实例。也许你想做类似的事情:
Hour[] hours = new Hour[data.length()];
hours[0] = new Hour();
hours[0].setSummary(test);
注意:我认为data.length()
属于char
,short
,byte
或int
和{{{ 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);
}