如已知类名为com.xin.reflect.Foo先获取类Class o = Class.forName("com.xin.reflect.Foo");再实例化(Foo)object = o.();
就在这里报错了:java.lang.IncompatibleClassChangeError我猜测是因为com.xin.reflect.Foo有多种构造函数导致newInstance系统不知道怎么实例化我现在想取Foo中的某方法来调用,但是却获取不了实例对象,大家帮忙看看

解决方案 »

  1.   

    Class o = Class.forName("com.xin.reflect.Foo"); 
    com.xin.reflect.Foo foo = (com.xin.reflect.Foo)o.newInstance();
      

  2.   

    如果有多个构造方法,使用Class类的getDeclaredConstructor、getConstructor等方法得到构造方法再去调用
    这里没有必要进行强转。如果你仅仅知道类的信息是"com.xin.reflect.Foo"这个串,那么你如何能写出(Foo)objec这样的东西。
    如果能写出(Foo)object,为什么不Foo object =new Foo();