在 Java 中向列表添加功能

Add functionalities to List in Java

我需要在 List<> 的任何实现上添加以下功能: - 结果对象不应该显示正索引的 OutOfBounds 异常 - 当你调用 get(x) 时,x=size,它会自动增加列表直到大小 x+1,并且会用程序员希望的任何东西填充新创建的空间(NULL 除外) - 请记住,列表应该是通用类型 - 否则,它应该像一个普通的 List

我知道我至少需要使用装饰器模式来添加功能,但是,我觉得还应该使用其他一些设计模式——也许是工厂模式或模板,但我不确定如何使用.

任何人都可以至少给我一些关于如何解决上述任务的提示吗?

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);
    }
}