您的位置:首页 > 编程语言 > Java开发

Java泛型Demo

2016-03-07 18:00 375 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息