Java Raw type

Java Raw type

    最近看Java Language specification,看到第四章,感觉有很多东西自己以前都不曾注意,所以建议学Java的同学都看看,真的是查漏补缺。 下面说说Raw Type: public  TClass < E > {
   public  List < String >  getString(){
  
return   null ;
  }
  
public   static   void  main(String args[]){
     TClass tc 
=  TClass();
     List
< TClass >  list  =  tc.getString(); //1
  }
}
   1处就很奇怪了,为什么getString命名返回的是List<String>而将其赋值给List<TClass>类型都可以呢?这就是编译器对Raw type进行了处理,编译器将Raw type进行擦除,就是将其参数类型中的参数全部去掉,例如List<String>将擦除成List,所以tc.getString()返回的是List而不是List<String>。

你可能感兴趣的:(Java Raw type)