Добавить функциональность в список в 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);
    }
}
Другие вопросы по тегам