Java泛型Demo

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;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值