一個簡單的集合類,可使用任意對象進行添加,內容能夠幫助理解泛型和如何建立一個自定義的泛型類java
package com.me.classcast; public class Check { public static void main(String[] args) { ListStack<String> s = new ListStack<String>(); s.add("name"); s.add("age"); s.add("sex"); s.remove(1); System.out.println(s.get(0)); } } class ListStack<T>{ private Object t[]; //初始化 public ListStack(){ this.t = null; } //獲取 @SuppressWarnings("unchecked") public T get(int index){ return (T)t[index]; } //新增 public void add(T t){ Object list[] = null; if(this.t != null) list = this.t.clone(); if(list != null){ int len = list.length; this.t = new Object[len + 1]; for(int i = 0;i < len;i++){ this.t[i] = list[i]; } this.t[len] = t; } else { this.t = new Object[1]; this.t[0] = t; } } //獲取長度 public int size(){ return this.t.length; } //刪除 public void remove(int index){ Object list[] = this.t.clone(); int len = list.length; this.t = new Object[len - 1]; int j = 0; for(int i = 0;i < len;i++){ if(index != i){ this.t[j++] = list[i]; } } } }
在java的泛型書寫中,java採用<? extends T>來約束使用的類型this
如圖:spa
這樣作,就能夠限制泛型中的類型隨意書寫的行爲code