我想初始化Generic Parameter
和Array
爲什麼我無法初始化通用參數和數組?
像
import java.util.ArrayList;
import java.util.List;
public class GenericExample<T> {
/*
* Complier error -->
*
* Cannot instantiate the type T
*/
private T t = new T();
/*
* Complier error -->
*
* Cannot create a generic array of T
*/
private T[] tArray = new T[10];
/*
* No Complier error.
*/
private List<T> list = new ArrayList<T>();
}
沒有錯誤時,泛型類型,初始化列表如下:
/*
* No Complier error.
*/
private List<T> list = new ArrayList<T>();
然而,編者錯誤在我使用以下初始化時出現。
/*
* Complier error -->
*
* Cannot instantiate the type T
*/
private T t = new T();
/*
* Complier error -->
*
* Cannot create a generic array of T
*/
private T[] tArray = new T[10];
有人可以幫助我走出了以下2個問題:
Q1:爲什麼List<T> list = new ArrayList<T>();
沒有遇到編者錯誤?
Q2:爲什麼在使用private T t = new T();
和private T[] tArray = new T[10];
時出現編譯器錯誤?