我正在尝试以下代码来制作一个调整数组大小的泛型方法,但它给了我一个错误“非静态类型变量T不能从静态上下文中引用”,有没有办法让这个方法静止不动没有错误?有没有其他更好的方法呢?我是java的新手,我还在学习,所以我不确定它是否会起作用,或者只是我认为它会为我做这个工作?
public static T[] resizeArray(T[] t,int newSize) {
Object[] temp = new Object[newSize];
System.arraycopy(t, 0, temp, 0, t.length);
t=(T[]) new Object[newSize];
System.arraycopy(temp, 0, t, 0, t.length);
return t;
}
答案 0 :(得分:1)
在返回类型
之前放置类型定义public static <T> T[] resizeArray(T[] t,int newSize)
答案 1 :(得分:0)
您可以在<T>
后使用static
将该方法设为通用,另请参阅Arrays.copyOf(T[], int)
的签名。哪个复制指定的数组,截断或填充空值(如有必要),以便副本具有指定的长度。像,
public static <T> T[] resizeArray(T[] t, int newSize) {
return Arrays.copyOf(t, newSize);
}