我试图创建一个数组并用currentYear + 1填充它,最多15个Calendar []年= {2016,2017,2018,2019,....... 2031}我想要在数字选择器中显示它。到目前为止,我能够获得currentYear并添加1年,但是当我尝试将结果存储到for循环中的数组时,我遇到了问题。
我的代码到目前为止
Calendar cal;
Calendar [] years = new Calendar[15];
public Calendar [] getYears(){
cal = Calendar.getInstance();
cal.get(Calendar.YEAR);
//cal.add(Calendar.YEAR, 1);
for(int i = 1; i < years.length; i ++){
Calendar temp = cal.add(Calendar.YEAR, 1);
years [i] = temp ;
}
return years;
}
答案 0 :(得分:0)
首先,如果数组保持div.dropcap p:first-of-type::first-letter {color: #f00;}
年,那么它将从15
到2016
,而不是2030
。
其次,如果您只是将cal字段添加到31
的所有位置,那么您将有15个引用指向完全相同的array years
。您要做的是创建克隆对象并指向它们,您可以使用clone()方法执行此操作。
因此,请尝试将方法更改为:
Object
但如果您想要存储多年,我建议您将代码更改为:
public Calendar[] getYears() {
cal = Calendar.getInstance();
for (int index = 0; index < years.length;) {
years[index++] = (Calendar) cal.clone();
cal.add(Calendar.YEAR, 1);
}
return years;
}