如何将Class.getMethod用作吸气剂?

时间:2019-05-09 14:03:23

标签: java class methods reflection getter

我正试图将Class.getMethod用作吸气剂。

我尝试过:

//This works fine
Class<?> c = Class.forName("Cat");
//This is not working 
Cat cat = c.getMethod("getCat");

2 个答案:

答案 0 :(得分:3)

Class类为您提供

之类的方法
  • newInstance()调用默认构造函数
  • getDeclaredConstructors()

这样,您可以从Class对象创建实例对象。有关官方文档,请参见here,以了解如何使用反射创建实例。

{strong>唯一可行的方法 static 方法,则

getMethod()

可能会工作。

这里的真实答案:

  • 当您是新手时,请不要假设。阅读文档或一个很好的教程
  • 当您是新手时:请勿使用反射。反射很容易使成熟的Java程序员疯狂。对于新手来说,这确实是一个禁区。

答案 1 :(得分:2)

getMethod返回一个java.lang.reflect.Method对象。然后,您需要调用它:

Cat cat = c.getMethod("getCat").invoke(null);
// Here ------------------------^