Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我们有类类型的对象时,如何在Java中创建实例_Java_Spring_Annotations - Fatal编程技术网

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

当我们有类类型的对象时,如何在Java中创建实例,java,spring,annotations,Java,Spring,Annotations,我目前正在Spring Boot应用程序中使用注释。我将通过以下方式获得一个成功的注释类: Class s = applicationContext.getType(beanName); 之后,我还能够获得带注释的方法(使用一些if检查) 我想调用一个特定的方法 Object result = method.invoke(?, args); 但是,invoke的签名需要传递给它的类的实例。我不确定如何获得该类的实例或对象 您并不真正想要一个类实例:您想要调用方法的实际实例(如果是实例方法),

我目前正在Spring Boot应用程序中使用注释。我将通过以下方式获得一个成功的注释类:

Class s = applicationContext.getType(beanName);
之后,我还能够获得带注释的方法(使用一些if检查)

我想调用一个特定的方法

Object result = method.invoke(?, args);
但是,invoke的签名需要传递给它的类的实例。我不确定如何获得该类的实例或对象


您并不真正想要一个
实例:您想要调用方法的实际实例(如果是实例方法),或者
null
(如果是静态方法)

还不完全清楚您打算做什么,但是如果
method
是一个实例方法,您需要一个
s
的实例来调用它。如果
s
具有无参数构造函数,则可以执行以下操作

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

对于具有其他签名的构造函数,请提供
getConstructor()
的参数类型和
newInstance()
的参数值。实际上,您并不需要
实例:您需要调用方法的实际实例(如果是实例方法),或者
null
(如果是静态方法)

还不完全清楚您打算做什么,但是如果
method
是一个实例方法,您需要一个
s
的实例来调用它。如果
s
具有无参数构造函数,则可以执行以下操作

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

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

使用
s.getConstructor()
,然后调用该
构造函数。它解决了这个问题。请输入正确的答案,以便我可以标记它已完成。使用
s.getConstructor()
然后调用该
构造函数
@用户谢谢。它解决了这个问题。请写一个正确的答案,这样我就可以标记它完整。谢谢你的回复。但这不是一个静态方法。@Smit更新了答案。谢谢。在接下来的7分钟内无法接受,稍后将接受。谢谢回复。但这不是一个静态方法。@Smit更新了答案。谢谢。在接下来的7分钟内无法接受,之后将很快接受。