1. 程式人生 > >數組泛型

數組泛型

print port win ring void res block ray new t

前言:大家都知道要定義如“T[]t = new T[10];”這樣的泛型數組是不行的,自己也找了不少方法。最後在《Thinking InJava》中吸取了一種非常好的方法。

如今分享給大家。

?源代碼:

  1. import java.lang.reflect.Array;
  2. public classArrayOfGeneric<T> {
  3. T[]ts;
  4. @SuppressWarnings("unchecked")
  5. publicArrayOfGeneric(Class<T> type, int size) {
  6. ts = (T[]) Array.newInstance
    (type,size);
  7. }
  8. public T get(int index) {
  9. return ts[index];
  10. }
  11. public T[] rep() {
  12. return ts;
  13. }
  14. public void set(int index, T t) {
  15. ts[index] = t;
  16. }
  17. }

?使用案例:

  1. publicstaticvoidmain(String[] args) {
  2. ArrayOfGeneric<Integer> aog = newArrayOfGeneric<Integer>(Integer.
    class, 10);
  3. Object[] objs = aog.rep();
  4. for (int i = 0; i < 10; i++) {
  5. aog.set(i, i);
  6. System.out.println(aog.get(i));
  7. }
  8. try {
  9. Integer[] strs =aog.rep();
  10. System.out.println("成功使用 Array.newInstance創建一個泛型數組!!!!! "
    );
  11. } catch (Exception ex) {
  12. ex.printStackTrace();
  13. }
  14. }

如有好的建議,可留言或發至筆者郵箱:[email protected]

數組泛型