日期:2014-05-20  浏览次数:20744 次

java中泛型的应用问题
class Info<T>{
  private T var;

public T getVar() {
return var;
}

public void setVar(T var) {
this.var = var;
}
public <?> toString(){
return var; //.toString();

}
}
public class GenericsDemo {
  public static void main(String[] args) {
  Info<String> i=new Info<String>();
  i.setVar("回家了");
  fun(i);
  }
  public static void fun(Info<?> temp){
// System.out.println("内容"+temp);
 
  }

}
上面的程序是测试泛型的,在 Info类中当我把Object的方法重写,把返回值String改为泛型时,为什么会
提示 -the type parameter T is hiding the type T
  _return type for the method is missing ????


 

------解决方案--------------------
object类中的toString 方法
public String toString()

返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: 

getClass().getName() + '@' + Integer.toHexString(hashCode())

------解决方案--------------------

Object里木有public <?> toString()