В приведенном ниже коде я хотел бы, чтобы второй метод также был универсальным, но поскольку я создаю объект Calendar внутри метода, из-за стирания типа , я не вижу как . Одной из возможностей было бы передать объект Calendar, но это лишило бы смысла использование этого метода вообще (не думая об объектах Calendar).
Как заставить второй метод работать для нескольких подклассов Календаря, как первый метод?
public static <U extends Calendar> CalendarMatch<U> tpFromCalendar(U dt)
{
// we want to do all comparisons on UTC calendars
dt.setTimeZone(TimeZone.getTimeZone(DEFAULT_TZ_ID));
return new CalendarMatch<U>(dt);
}
public static CalendarMatch<GregorianCalendar> tpDailyGregorian(int h)
{
GregorianCalendar dt = new GregorianCalendar(TimeZone.getTimeZone(DEFAULT_TZ_ID));
dt.clear();
dt.set(Calendar.HOUR, h);
// this works because of type inference
return tpFromCalendar(dt);
}