Fav*_*las 8 java constructor calendar initialization
如果我这样做:
new Estimacao("Aarão","Affenpinscher","Abóbora",new GregorianCalendar(1999,7,26),0),
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作.但如果我这样做:
new Estimacao("Aarão","Affenpinscher","Abóbora",new Calendar(1999,7,26),0),
Run Code Online (Sandbox Code Playgroud)
可以办到.我所知道的.我们必须像这样初始化日历:
Calendar date = Calendar.getInstance();
date.set(Calendar.YEAR, 1999);
date.set(Calendar.MONTH, 7);
date.set(Calendar.DAY_OF_MONTH, 26);
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如上所述创建和初始化对象时是否可以使用Calendar并实现相同的功能.GregorianCalendarnew Estimacao
Dav*_*ton 20
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;
}
Run Code Online (Sandbox Code Playgroud)