首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

反照中泛型应用的易错点

2012-08-21 
反射中泛型应用的易错点public class Test {public void func(){System.out.println(func)}public stat

反射中泛型应用的易错点
public class Test
{
    public void func()
    {
         System.out.println("func");
   }
   
   public static void main(String args[]) throws Exception
   {
           Test  obj = new Test ();
           //下面这行可以成功编译 
           ((Test)obj).getClass().newInstance().func();
           // Class<? extends Test> -- (Test)obj).getClass()
           //<? extends Test>(即为Test) -- ((Test)obj).getClass().newInstance()
          
           //下面这两行无法通过编译
           /*Class  c = ((Test)obj).getClass();
             c.newInstance().func();
            *将返回值为Class<? extends Test>类型的(Test)obj).getClass()
            *强制转换成了Class类型(默认是Class<?>)
            *Object -- c.newInstance()
            */
        //解决方案   1:
    Class<? extends Test> c = ((Test)obj).getClass();
            c.newInstance().func();
       //解决方案   2:
    Class c2 = ((Test)obj).getClass();
            ((Test) c2.newInstance()).func();
  
}
}

热点排行