java: ERROR: "cannot find symbol – class Constructor" when making instance from String, with parameters

java: ERROR: "cannot find symbol – class Constructor" when making instance from String, with parameters

我在这里搜索了所有涉及 'reflection' 的问题,以使用 class 名称的字符串实例化参数化对象,但我无法让它工作,因为 Java 没有'将构造函数识别为 class。

Class myClass = Class.forName("MyClass");

Class[] types = {Double.TYPE, String.TYPE};
Constructor constructor = myClass.getConstructor(types);

Object[] parameters = {1.0, "hello"};
Object instanceOfMyClass = constructor.newInstance(parameters);

这是我尝试使用的代码,我也尝试过以不同的方式编写参数,但这些与问题无关(请回复 Constructor class 问题)。我该怎么做?

myClass.getConstructor(types)中,需要传递class对象。所以你需要声明String.class,当你写Double.TYPE时,这是用于原始数据类型。请参考此代码

    Class myClass = Class.forName("com.citi.MyClass");

    Constructor cons= myClass.getConstructor(Double.TYPE, String.class);

    Object[] param = {1.0, "Hello"};
    Object instanceOfMyClass = cons.newInstance(1.0, "Hello");