classPoint{//此处可以随便写标识符号,T是type的简称privateTvar;//var的类型由T指定,即:由外部指定publicTgetVar(){//返回值的类型由外部决定returnvar;}publicvoidsetVar(Tva...
class Point{ // 此处可以随便写标识符号,T是type的简称
private T var ; // var的类型由T指定,即:由外部指定
public T getVar(){ // 返回值的类型由外部决定
return var ;
}
public void setVar(T var){ // 设置的类型也由外部决定
this.var = var ;
}
};
public class GenericsDemo05{
public static void main(string[] args)
point p=new point();
p.setVar(30);
System.out.println(p.getVar()*2);
}
上面这段代码运行结果是60,。可是问题是代码最后一行p.getVar()得到的是Integer类型的对象应该输出地址才对呀。再看下面这段代码
class Info{
private T var ; // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){ // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo14{
public static void main(String args[]){
Info i = new Info() ; // 使用String为泛型类型
i.setVar("MLDN") ; // 设置内容
fun(i) ;
}
public static void fun(Info> temp){ // 可以接收任意的泛型对象
System.out.println("内容:" + temp) ;
}
};
也是最后一行如果想输出"MLDN"应该改为 System.out.println("内容:" + temp.var) ;可实际上不该就能输出"MLDN"
这两个问题希望明白人给解答一下
展开