import java.util.*;  

public class Hello {
   

    public static void main (String [] args) {

        String[] str1 = {
  "hello", "i", "am", "Jarry1"};
        String[] str2 = {
  "hello", "i", "am", "Jarry2"};
        String[] str3 = {
  "hello", "i", "am", "Jarry3"};
        String[] str4 = {
  "hello", "i", "am", "Jarry4"};

        Vector v1 = new Vector(str1);
        Vector v2 = new Vector(str2);
        Vector v3= new Vector(str3);
        Vector v4 = new Vector(str4);

        Vector v = new Vector();
        v.func(new Vector[] {v1, v2, v3,v4});
    }

    private static class Vector<T> {
   

        T[] obj;

        public Vector() {}
        public Vector(T[] obj) {
            this.obj=obj;
        }

        void func(Vector<?>... args) {
            for (int i=0; i< args.length; i++ ) {   
                for (int j=0; j< args[i].obj.length ; j++ ) {
                    System.out.print(args[i].obj[j] + " ");             
                }
                System.out.print("\n"); 
            }
        }       
    }

}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

输出:

hello i am Jarry1 
hello i am Jarry2 
hello i am Jarry3 
hello i am Jarry4 
 
 
  • 1
  • 2
  • 3
  • 4

我想这个例子已经很简单了吧,其中:void func(Vector<?>... args) 等价于 void func(Vector<T>[] args), 模板T,必须是Object类型,不能是基本数据类型。因为是在静态的main函数里去声明Vector对象,所以Vector内部类也应该是静态的(静态上下文不能引用非静态变量)


原文:http://blog.csdn.net/Ray_Chou/article/details/48206783