public class Array<T>{private T[] arr; public Array(){
arr = (T[]) new Object[10];
}}這樣執(zhí)行可以 ,當(dāng)T extends Comparable<T>時(shí)就出錯(cuò)應(yīng)該怎么定義啊
1 回答

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
===更新
不知道你是否是希望仿照實(shí)現(xiàn)一個(gè)ArrayList,我寫了個(gè)及其簡(jiǎn)陋的,其中用Object[]
數(shù)組來存儲(chǔ),取出時(shí)再轉(zhuǎn)換成T
。
public class Array<T extends Comparable<T>> { private Object[] arr; public static void main(String[] args) { Array<A> arr = new Array<A>(); arr.set(0, new A(24)); arr.set(1, new A(25)); System.out.println(arr.get(1)); } public Array(){ arr = new Object[10]; } public void set(int index, T ele) { arr[index] = ele; } public T get(int index) { return (T) arr[index]; } }class A implements Comparable<A>{ private int age; public A(int age) {this.age = age;} public A() {} public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public int compareTo(A a) { return this.age - a.getAge(); } }
在ArrayList
的源碼中,它也是用Object
數(shù)組來存儲(chǔ)元素的:transient Object[] elementData;
===原答案Comparable
是接口,應(yīng)該用implements
;
另外,你上面的Array
是個(gè)class
嗎還是?報(bào)了什么錯(cuò)?
添加回答
舉報(bào)
0/150
提交
取消