当我们有 Class 类型的对象时,如何在 Java 中创建一个实例

How to create a instance in Java when we have object of type Class

我目前正在 Spring 引导应用程序中使用注释。我通过以下方式获得成功注释 class 的地方:

Class s = applicationContext.getType(beanName);

之后我还可以获得带注释的方法(带有一些 if 检查)

Method[] methods = s.getMethods();

我想调用一个特定的方法

Object result = method.invoke(?, args);

然而,invoke 的签名需要传递给它的 Class 的实例。我不确定如何获取 class?

的实例或对象

你并不真的想要一个 Class 实例:你要么想要调用该方法的实际实例(如果它是一个实例方法),要么 null(如果这是一个静态方法)。

尚不完全清楚您打算做什么,但是如果 method 是一个实例方法,您需要一个 s 的实例来调用它。如果 s 有一个无参数的构造函数,那么你可以做

Object result = method.invoke(s.getConstructor().newInstance(), args);

对于具有其他签名的构造函数,将参数的类型提供给 getConstructor(),将参数的值提供给 newInstance()