Добавить функциональность в список в Java
Мне нужно добавить следующие функции в любую реализацию List<>: - полученный объект никогда не должен показывать исключение OutOfBounds для положительных индексов - когда вы вызываете get(x) с x=size, он автоматически увеличивает список до размер x+1, и заполнит вновь созданные пробелы всем, что пожелает программист (кроме NULL) - помните, список должен быть универсальным типом - в противном случае он должен действовать как обычный список
Я знаю, что мне нужно использовать Pattern Decorator, по крайней мере, для добавления функциональности, однако, я чувствую, что я должен также использовать некоторые другие Design Patterns - может быть, Factory или Template, но я не совсем уверен, как.
Может ли кто-нибудь дать хотя бы несколько советов о том, как я могу решить вышеупомянутую задачу?
1 ответ
class ListImpl<T> extends ArrayList {
private Class<T> tType;
public ListImpl(Class<T> tType) {
this.tType = tType;
}
@Override
public T get(int i) {
if (i < this.size()) {
T result = (T) super.get(i);
} else {
int resize = 1 + i - this.size();
// T[] array = (T[]) new Object[resize];
T[] array
= (T[]) java.lang.reflect.Array.newInstance(tType, resize);
this.addAll(Arrays.asList(array));
}
return (T) super.get(i);
}
}