package cn.generic;
/**
* 自定义泛型类
* 注意:一旦使用泛型,不能使用具体对象的方法,因为Object是所有类的基类,所以只能使用Object的方法。
* @author Administrator
*
*/
public class GenericDemo_2 {
public static void main(String[] args) {
//创建泛型类对象,在这里对象的泛型明确的类型为String,如果对象的方法没有自定义泛型的话,就必须符合对象的泛型类型。
CustumGeneric<String> cg = new CustumGeneric<String>();
//此方法有自己的泛型
cg.show("你好");
cg.show(new Integer(8));
//此方法跟随创建对象的泛型
cg.print("世界");
//静态方法自定义自己的泛型,静态不能操作对象,用类名直接调用静态方法
CustumGeneric.method("百家争鸣");
CustumGeneric.method(new Integer(8));
}
}
/**
* 自定义泛型类
* @author Administrator
*/
class CustumGeneric<T>{
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
/**
* 将泛型定义在方法上,定义泛型,使用泛型。
* @param t
*/
public<w> void show(w object){
System.out.println("有自己的泛型:"+object);
}
/**
* 没有自定义泛型,所以能操作的类型只能符合对象的泛型类型
* @param t
*/
public void print(T object){
System.out.println("无自己的泛型:"+object);
}
/**
* 当方法为静态时,不能访问类上定义的泛型,
* 如果静态方法使用泛型,只能定义在静态方法上
*/
public static<S>void method(S object){
System.out.println("静态方法使用泛型"+object);
}
}
觉得总结的好,就麻烦客官给个赞呗
|