如果我这样做:
new Estimacao("Aarão","Affenpinscher","Abóbora",new GregorianCalendar(1999,7,26),0),
一切都按预期工作。但是,如果我这样做:
new Estimacao("Aarão","Affenpinscher","Abóbora",new Calendar(1999,7,26),0),
可以办到。我所知道的。我们必须像这样初始化日历:
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, 1999);
date.set(Calendar.MONTH, 7);
date.set(Calendar.DAY_OF_MONTH, 26);
我想知道的是,如上所述,在创建和初始化对象时是否可以使用Calendar
,并实现与相同的效果。GregorianCalendar
new Estimacao
Calendar是一个Abstract类,因此您无法创建它的实例。当您调用getInstance时,它实际上返回一个新的GregorianCalendar实例。因此,这与您的第一个示例相同。
所以我想问题是,为什么要调用新日历而不是新的GregorianCalendar?如果只是为了隐藏您正在使用的实现,那么我要么只是做您已经完成的初始化日历的工作。或者创建一个采用相同参数并隐藏对Calendar类的调用的方法,例如
public Calendar getCalendar(int day, int month, int year) {
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, year);
// We will have to increment the month field by 1
date.set(Calendar.MONTH, month+1);
// As the month indexing starts with 0
date.set(Calendar.DAY_OF_MONTH, day);
return date;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句