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