Class<?> clazz = Class.forName("com.zhsh.test.People");
Object obj = null;
obj=clazz.newInstance();
System.out.println(obj);
像这种方法怎么得不到对象呀?
老抛错误:Exception in thread "main" java.lang.InstantiationException: com.zhsh.test.People
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.zhsh.test.Demo.main(Demo.java:38)有什么其它的好方法,从"com.zhsh.test.People"这个字符串得到  一个people对象呢?

解决方案 »

  1.   

    我这没问题啊,是不是People类不存在哦
      

  2.   

    传入一个People对象,对象.getClass() 
      

  3.   

    是不是因为你这个包里面没有PEOPLE类,或者没定义好啊,如果想得到一个对象,那么为什么不用import com.zhsh.test.People来导入这个类,然后用NEW来 得到对象呢?
      

  4.   

    我的 People类中定义了一个有参数的构造方法,我把这个构造方法去了就可以了,没有异常;或者我再加上一个没有参数的构造方法,也可以。但是,每个类不都有一个默认的没有参数的构造方法吗?
      

  5.   

    1.检查com.zhsh.test.People是否存在。
    2.确信com.zhsh.test.People有无参构造方法。
      

  6.   


    已经发现问题了,我的People类中  只有一个有参数的构造方法。把这个有参数的构造方法去掉了就可以了。
      

  7.   

    这个问题是,com.zhsh.test.People不存在默认的构造函数。
    newInstance()实例化的时候,调用的是默认构造函数。
    如果没有默认构造函数,就的 代理Proxy.newProxyInstance(***,***,***)..................