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

J2SE幼功<3>

2012-10-18 
J2SE基本功3public class Test1 {public void func() {System.out.println(func)}public static void

J2SE基本功<3>

public class Test1 {public void func() {System.out.println("func");}public static void main(String args[]) throws Exception {Object obj = new Test1();// 下面是能通过的((Test1) obj).getClass().newInstance().func();// 下面是不能通过的下面这两行代码之所以无法通过编译      /*  Class c = ((Test)obj).getClass();           c.newInstance().func();         是因为((Test)obj).getClass()返回的为对象类型为Class<? extends Test>,但是我们在第一行将结果强制转换成了Class,          然后再去调用Class的newInstance方法,而不是去调用Class<Test>的newInstance方法,          编译器当然不再认为Class的newInstance方法返回的对象为Test了。      *//* * Class c=((Test1)obj).getClass();  * c.newInstance().func(); */Class<? extends Test1> c = ((Test1)obj).getClass(); c.newInstance().func(); }}

?

热点排行