对于许多框架开发,我们需要通过从配置文件中读取合格的类名来实例化类。
有不同的内省(introspection)策略,以及专门的库(如 Objenesis)。
但是,对于没有默认构造函数(重载)的类,我相信如果我们不知道重载构造函数的签名,内省(introspection)就不起作用。非标准方法是使用 sun.misc.Unsafe 类来分配。这是我的理解。这样的理解正确吗?
那么这就存在一个问题,因为父类(super class)不是使用 Unsafe 实例化的。但我认为 Unsafe 与 C 代码“new”运算符调用的任何内容最接近,至少是其中的一部分。
所以问题是,当我们拥有的唯一信息是类的限定名称(当然,它存在于类路径!)
最佳答案
我不确定我是否理解你的问题,但通常在java中,如果你知道类名,你可以简单地写: 类名 myObject=new 类名();
关于java - 实例化一个没有默认构造函数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19726617/