/**
* 泛型基本使用:泛型是jdk1.5以后出来安全机制,避免了强转。
* 1,成员变量中的体现。
* 2,成员函数中体现。
* 3,实体类中的体现。
* 4,接口中的体现。
*/
//泛型类
class Xbos<T>{
//泛型成员变量
private T t;
Xbos(T t){
this.t = t;
}
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
public void outs1(){
System.out.println("当前对象类型是:"+
t.getClass().getTypeName()+"数据为:"+this.t);
}
//泛型定义在方法体上面
public <Ty> void outs2(Ty ty){
System.out.println(ty);
}
//注意:xBos中T是定义在方法体中的泛型变量。
//而outs2中是定义在方法体中,他们两个是不相同。
}
//泛型接口
interface XBoss<T>{
void display(T t);
}
class XBossImps<Ty> implements XBoss<Ty>{
public void display(Ty t){
System.out.println("泛型接口:"+t);
}
}
public class GenericDemo {
public static void main(String[] args) {
Xbos<String> xb1 = new Xbos<String>("张三");
Xbos<Integer> xb2 = new Xbos<Integer>(28);
XBossImps<String> xbt = new XBossImps<String>();
System.out.println("泛型定类上面:");
xb1.outs1();
xb2.outs1();
System.out.println("泛型定义方法体上面:");
xb2.outs2("小明");
xb2.outs2(new Integer(88));
System.out.println("泛型定义方法体上面:");
xbt.display("香港");//调用明确类型
}
}
运行结果:
泛型定类上面:
当前对象类型是:java.lang.String数据为:张三
当前对象类型是:java.lang.Integer数据为:28
泛型定义方法体上面:
小明
88
泛型定义方法体上面:
泛型接口:香港