Java泛型Demo

来源:互联网 发布:安卓订餐源码 编辑:程序博客网 时间:2024/06/05 05:53
class  GenClassDemo
{
public static void main(String[] args) 
{
GenClass<Double> gc=new GenClass<Double>(20.11);
GenClass2 gc2=new GenClass2(30);
gc.tell();
gc2.tell();  //可以看到如果非泛型的时候:元素或者方法类型可以是基本类型,也可以是基类的包装类。但是泛型的时候必须使用包装类。
//如果泛型的参数类型,不是包装类,而是基本类那么就会报错,--》意外的类型。
//因为泛型只支持引用类型的类型。
//后面这个构造函数在调用的时候:GenClass()。必须加上泛型标记。 new GenClass<Double>();
//T,K这两个标记的类型。都是包装类。 原本加入 private int data
//**********************************************


/* GenClass<Student> gcs=new GenClass<Student>();
Student stu=new Student();
stu.setName("zhangsan");//stu.setName(String name);
gcs.setData(stu);//gcs.setData(Student stu)
System.out.println(gcs.getData().getName());
这一标记段测试泛型类的泛型是其他任意类的时候如何操作。
*/  


//泛型类的泛型类型也可以是泛型类!!
GenClass<GenClass<Student>>  gcgs=new GenClass<GenClass<Student>>();
GenClass<Student> gcs1=new GenClass<Student>();
Student stu1=new Student();
stu1.setName("wangwu");
gcs1.setData(stu1);
gcgs.setData(gcs1);
String stuname=gcgs.getData().getData().getName();
System.out.println(stuname);
}
}


class GenClass<T>
{
private T data;
GenClass(){}
GenClass(T data){
this.data=data;
}
public void setData(T data){
this.data=data;
}
public T getData(){
return data;
}
public void tell(){
System.out.println("GenClass的data为:"+getData());
}


}


class GenClass2
{
private int data;
GenClass2(int data){
this.data=data;
}
public void setData(int data){
this.data=data;
}
public int getData(){
return data;
}
public void tell(){
System.out.println("GenClass的data为:"+getData());
}


}


//等下使用Student类作为泛型的类型。意思是将Student赋值给T。 T所代表的类型都是Student类型。
//属性是Student类型。 方法返回值类型是Student类型。
class Student
{
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
0 0
原创粉丝点击