第一种:泛型类里的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;
}
没有评论:
发表评论