为什么会这样?代码中的一行运行良好,而另一类似行则不行。自动类型转换是否仅在某些条件下发生?我试图将 gt.echoV() 分配给一个对象,并且效果很好;但是当我将它分配给一个字符串时,同样的错误会再次出现。
public class GeneMethodTest {
public static void main(String... args) {
GeneMethodTest gt = new GeneMethodTest();
gt.<String>echoV(); //this line works well
gt.<String>echoV().getClass();//this line leads to a type cast exception
}
public <T> T echoV() {
T t=(T)(new Object());
return t;
}
}