Поскольку ваш класс не является универсальным, его объявление не должно иметь параметра универсального типа;оно должно быть только у ArrayList
:
public class TimeList extends ArrayList<Date> ...
// ^
// No <Date> in the declaration
Вам не нужно беспокоиться о том, что Date
пропущено в названии вашего класса, потому что имя уже достаточно наглядно, чтобы читатели могли понять, что ваш класспредставляет коллекцию моментов времени.
Однако вы должны переосмыслить свой подход: вместо расширения ArrayList<Date>
ваш класс должен либо содержать список, т. Е.
public class TimeList {
private final List<Date> dates = new ArrayList<>();
public List<Date> getDates() {
return Collections.unmodifiableList(dates);
}
... // your additional methods
}
, либо если вам нужно предоставить дополнительные методы для List<Date>
Вы можете написать служебный класс:
public final class TimeLists {
public static Date getNextTime(List<Date> dates) {
... //
}
public static Date getPriorTime(List<Date> dates) {
... //
}
...
private TimeLists() {
// Prevent instantiation of TimeLists class
}
}