有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java反射,如何使用构造函数获取newInstance是一个很重要的问题。类别ex:Class<Customer>customerClass

我有构造器

  public CustomerService(Class<Customer> clazz) {
    super(clazz);
}

所以,我在构造函数中接收到Customer类,如何使用反射获得newInstance

我在这里搜索过了,但没有找到任何解决办法

我试过了,但没有成功

Object entityService =    Class.forName("CustomerService").getConstructor(Object.class).newInstance(customerObject);

有什么想法吗


共 (2) 个答案

  1. # 1 楼答案

    构造函数的签名具有Class类型的参数,而不是Object

    Object entityService =    Class.forName("CustomerService").getConstructor(Class.class).newInstance(customerObject);
    

    PS
    (按名称)似乎customerObject的类型不是Class,但它应该是

  2. # 2 楼答案

    正如沃罗诺夫博士所说,工作,只是改变了

    来自

     newInstance(customerObject);
    

      Object entityService = Class.forName(sinpleClassName).getConstructor(Class.class).newInstance(customerObject.getClass());