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