Java 泛型类型数组的Resize方法

Java 泛型类型数组的Resize方法,java,arrays,generics,Java,Arrays,Generics,我正在尝试为数组创建一个调整大小的方法,并且必须使用一个通用数组。我有如下的构造器: public ArrayLists (Class <T[]> a) { array = (T[])Array.newInstance(a, DEFAULT_SIZE); } 我尝试了一些类似于我在构造函数中使用的数组的东西。newInstance,但我只能通过使用另一个Class参数来实现,然后使用该参数,我无法将数组重新分配给临时。我不能仅仅创建一个泛型数组,因为java不喜欢这样 这

我正在尝试为数组创建一个调整大小的方法,并且必须使用一个通用数组。我有如下的构造器:

public ArrayLists (Class <T[]> a) { 
    array = (T[])Array.newInstance(a, DEFAULT_SIZE);
}
我尝试了一些类似于我在构造函数中使用的
数组的东西。newInstance
,但我只能通过使用另一个
Class
参数来实现,然后使用该参数,我无法将
数组
重新分配给
临时
。我不能仅仅创建一个泛型数组,因为java不喜欢这样

这可能会简单一点,但我的主要问题是在测试它时,我需要创建至少两种不同类型的数组来测试。。。比如说

ArrayLists<String> list = new ArrayLists<>(String[].class);
ArrayLists<Random> list1 = new ArrayLists<>(Random[].class);
还有这个默认构造函数:

public ArrayLists(){
    this.size = DEFAULT_SIZE;
}//end cons

这(我认为)应该足以初始化默认大小为“10”的数组。但每当我测试它时,它都会显示list和list1的原始大小都是0,并且不允许我调整它们的大小。我缺少什么?

首先,你应该通过
课程,而不是
课程。该方法将创建一个数组
T[][]
。因此,将构造函数更改为:

public ArrayLists (Class <T> a) { 
    array = (T[])Array.newInstance(a, DEFAULT_SIZE);
}

首先,您应该传递一个
,而不是
。该方法将创建一个数组
T[][]
。因此,将构造函数更改为:

public ArrayLists (Class <T> a) { 
    array = (T[])Array.newInstance(a, DEFAULT_SIZE);
}

首先,您应该传递一个
,而不是
。该方法将创建一个数组
T[][]
。因此,将构造函数更改为:

public ArrayLists (Class <T> a) { 
    array = (T[])Array.newInstance(a, DEFAULT_SIZE);
}

首先,您应该传递一个
,而不是
。该方法将创建一个数组
T[][]
。因此,将构造函数更改为:

public ArrayLists (Class <T> a) { 
    array = (T[])Array.newInstance(a, DEFAULT_SIZE);
}

我将tempSize作为一个双精度函数,因为在一个insert方法中,我将它的大小增加了20%,这将得到一个双精度函数。Buuut我刚刚意识到这样做并不能给出一个数组大小的清晰定义。我现在正在尝试测试这个方法,但由于某种原因,有些东西不太适合它。这就是我所做的调整大小:
public void resize(int d){T[]temp=(T[])Array.newInstance(Array.getClass().getComponentType(),d);System.arraycopy(Array,0,temp,0,size);Array=temp;}
由于某种原因,我创建的字符串和随机数组没有初始化为构造函数中的默认大小,也不允许我调整它们的大小,有什么想法吗?@xTopShelfx有什么问题吗?不工作是不够的问题描述。对不起,在完成评论之前一直按“回车”,我的坏@xTopShelfx可以用确切的问题更新您的问题。你还没有给出足够的描述。是否存在任何异常或任何意外行为?把它记在你的问题上。这将更容易阅读。我将tempSize作为一个双精度,因为在一个insert方法中,我将它的大小增加了20%,这将得到一个双精度。Buuut我刚刚意识到这样做并不能给出一个数组大小的清晰定义。我现在正在尝试测试这个方法,但由于某种原因,有些东西不太适合它。这就是我所做的调整大小:
public void resize(int d){T[]temp=(T[])Array.newInstance(Array.getClass().getComponentType(),d);System.arraycopy(Array,0,temp,0,size);Array=temp;}
由于某种原因,我创建的字符串和随机数组没有初始化为构造函数中的默认大小,也不允许我调整它们的大小,有什么想法吗?@xTopShelfx有什么问题吗?不工作是不够的问题描述。对不起,在完成评论之前一直按“回车”,我的坏@xTopShelfx可以用确切的问题更新您的问题。你还没有给出足够的描述。是否存在任何异常或任何意外行为?把它记在你的问题上。这将更容易阅读。我将tempSize作为一个双精度,因为在一个insert方法中,我将它的大小增加了20%,这将得到一个双精度。Buuut我刚刚意识到这样做并不能给出一个数组大小的清晰定义。我现在正在尝试测试这个方法,但由于某种原因,有些东西不太适合它。这就是我所做的调整大小:
public void resize(int d){T[]temp=(T[])Array.newInstance(Array.getClass().getComponentType(),d);System.arraycopy(Array,0,temp,0,size);Array=temp;}
由于某种原因,我创建的字符串和随机数组没有初始化为构造函数中的默认大小,也不允许我调整它们的大小,有什么想法吗?@xTopShelfx有什么问题吗?不工作是不够的问题描述。对不起,在完成评论之前一直按“回车”,我的坏@xTopShelfx可以用确切的问题更新您的问题。你还没有给出足够的描述。是否存在任何异常或任何意外行为?把它记在你的问题上。这将更容易阅读。我将tempSize作为一个双精度,因为在一个insert方法中,我将它的大小增加了20%,这将得到一个双精度。Buuut我刚刚意识到这样做并不能给出一个数组大小的清晰定义。我现在正在尝试测试这个方法,但由于某种原因,有些东西不太适合它。这就是我所做的调整大小:
public void resize(int d){T[]temp=(T[])Array.newInstance(Array.getClass().getComponentType(),d);System.arraycopy(Array,0,temp,0,size);Array=temp;}
由于某种原因,我创建的字符串和随机数组没有初始化为构造函数中的默认大小,也不允许我调整它们的大小,有什么想法吗?@xTopShelfx有什么问题吗?不工作是不够的问题描述。对不起,在完成评论之前一直按“回车”,我的坏@xTopShelfx可以用确切的问题更新您的问题。你还没有给出足够的描述。是否存在任何异常或任何意外行为?约特