import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Type; import java.util.*; public class Solution { //创建数组arr //创建方法 传入数组src 值复制 //创建方法getArr(),返回arr public Solution(Class cls, int size) { T[] arr; Collections<T> c = new Collections<T>(); this.arr = (T[])Arrays.newInstance(cls,size); public void initArrData(T[] src){ for(int i = 0;i<src.length;i++){ arr[i] = src[i]; } } public T[] getArr(){ return arr; } }错在哪里
时间: 2024-03-17 19:42:36 浏览: 24
这段代码有几个语法错误:
1. `Collections<T> c = new Collections<T>();` 这一行应该改成 `Collection<T> c = new ArrayList<T>();`,因为 `Collections` 是一个工具类,不是一个集合类型。
2. `public void initArrData(T[] src){...}` 这一行应该放在构造函数之外,因为它是一个方法,而不是构造函数的一部分。
3. `this.arr = (T[])Arrays.newInstance(cls,size);` 这一行的括号不正确,应该是 `(T[]) Array.newInstance(cls, size);`。
4. `public Solution(Class cls, int size) {...}` 这个构造函数应该在最后的 `}` 之前关闭,否则其他的方法和属性都会成为构造函数的一部分,而不是类的一部分。
下面是修正后的代码:
```
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.*;
public class Solution {
private T[] arr;
public Solution(Class<T> cls, int size) {
this.arr = (T[]) Array.newInstance(cls, size);
}
public void initArrData(T[] src) {
for (int i = 0; i < src.length; i++) {
arr[i] = src[i];
}
}
public T[] getArr() {
return arr;
}
}
```