java的模板类可以理解为含有Object类型的类。

 

1. java的模板类的模板参数只能是参数类型,成员变量类型等,模板名是确定的。

2. 运行期,模板参数会被当作Object来处理,已经验证

3. 使用模板类的类型安全只是利用编译器的类型检查,来自动保证运行期的类型强转的正确与安全。


class  TestTemplate
{
	public static void main(String[] args) 
	{
		//vector<T> v=new vector<T>(); 
		Byte b=new Byte((byte)0);
		vector<Byte> v=new vector<Byte>(b);
		v.add((byte)0);
		v.add((byte)1);
		v.add((byte)3);
		v.add((byte)2);
		v.visitAll();
		
	}
}

class vector<T>{

	private int size=0;
	private vectorElement<T> head=null;
	private vectorElement<T> last=null;

	public vector(T datum)
	{
		System.out.println("vector(T datum)!");
		this.head=new vectorElement<T>(datum);
		this.last=this.head;
		this.size=1; 
	}


public boolean add(T datum){

		if(this.size==0){
			this.head=new vectorElement<T>(datum);
			this.last=this.head;
			this.size=1;
		}else{
			vectorElement<T> temp=new vectorElement<T>(datum);
			temp.previous=this.last;
			this.last.next=temp;
			this.last=temp;
			this.size=this.size+1;
		}
		return true;

	}

	public void visitAll()
	{
		vectorElement<T> walker;
		walker=head;
		while(walker !=null)
		{
			System.out.println(walker.datum);
			walker=walker.next;
		}
	}
}

class vectorElement<T>{

	public vectorElement<T> next=null;
	public vectorElement<T> previous=null;
	public T datum=null;

	public vectorElement(T datum){ this.datum=datum; }

}

/*
vector(T datum)!
0
0
1
3
2
请按任意键继续. . .
*/


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐