2015年3月3日星期二

泛型的使用

网上关于泛型的有很多.我在这里记录了 我能想到的使用方法。

第一种:泛型类里的T无继承

public class ClassComponenetType<T> {
        
         public String keyname;
        
         /** 断传的参数是不是String */
         public <T> boolean cls(Class<T> cls){
                  if (cls==String.class) {
                           return true;
                  }
                  return false;
         }
        
         /**
          * 使用泛型类的属性
          * @param t
          */
         public void put(T t){
                  if (t.getClass()==String.class) {
                           keyname=(String) t;
                  }
                 
                  if (t=="你好") {
                           //会进入到这里
                           keyname=(String) t;
                  }
         }
        
         public String get(){
                  return keyname;
         }
        
         public static void main(String[] args) {
                  ClassComponenetType<String> mCom=new ClassComponenetType<String>();
                  mCom.put("你好");
                  System.out.println("类泛型的使用-->"+mCom.get());
                  System.out.println("泛型变量的使用->"+mCom.cls(String.class));
         }

}

第二种:泛型类里的T有继承

public class ClassComponenetType<T extends GenericClass> {
        
         public String keyname;
         /**
          * 使用泛型类的属性
          * @param t
          */
         public void put(T t){
                  keyname=t.name;
         }
        
         public String get(){
                  return keyname;
         }
        
         public static void main(String[] args) {
                  ClassComponenetType<GenericClass> mCom=new ClassComponenetType<GenericClass>();
                  GenericClass gc=new GenericClass();
                  gc.name="你好";
                  mCom.put(gc);
                  System.out.println("类泛型的使用-->"+mCom.get());
         }

}

public class GenericClass {
public String name;
}




没有评论:

发表评论