如何通用地使用默认构造函数

How to use a default Constructor genericly

我想以通用方式激活默认构造函数。

例如,获取一组构造函数并激活其中一个(假设第一个是默认的)。

我想用它的代码是这样的:

construct (Class clazz){
      .....
      List<Constructor> constructors=
      Arrays.stream(clazz.getDeclaredConstructors()).filter(X->X.isAnnotationPresent(Inject.class)).collect(Collectors.toList());
           if(constructors.size()>1)
                    throw new MultipleInjectConstructorsException();
            else if(constructors.size()==0){
                    List<Constructor> defaultctor=
                    Arrays.stream(clazz.getDeclaredConstructors()).filter(X->X.getParameterCount()==0).collect(Collectors.toList());
                    if(defaultctor.size()==0)
                        throw new NoConstructorFoundException();
                    else {
                        /**activate the default constructor i got*/
                        //obj=defaultctor.get(0); 
        
                    }
                }
....
}

如何使用 defaultctor.get(0) 中的默认构造函数?

我认为这个问题可以进一步概括。

如何激活反射接收到的方法 如果我知道方法的名称和所有相关信息?

我怎样才能激活它?

Constructor.newInstance 是调用构造函数实例的方法。但是,几乎可以肯定,使用 SupplierMyType::new.

形式的方法参考会更好