如何使用 Class.getMethod 作为吸气剂?

Leo*_*cat 0 java reflection methods getter class

我目前正在尝试Class.getMethod用作吸气剂。

我尝试使用这种方法:

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

但它不起作用。

Gho*_*ica 6

类 Class 为您提供方法,例如

  • newInstance() 调用默认构造函数
  • 或者 getDeclaredConstructors()

这样你就可以从 Class 对象创建实例对象。有关如何使用反射创建实例的官方文档,请参见此处

唯一办法getMethod()可能可能的工作是:如果有一个参数小于静态与该名称的方法对猫类,那么

Cat cat = c.getMethod("getCat").invoke(null);
Run Code Online (Sandbox Code Playgroud)

可能工作。

真正的答案在这里:

  • 当你是新手时,不要假设事情会如何运作。阅读文档,或者一个很好的教程
  • 当您是新手时:不要使用反射。反射很容易让成熟的 Java 程序员发疯。对于新手来说,这真的是一个禁区。

  • @Leocat 不客气。但是请拜托:不要将“它有效”作为您应该使用 Reflection 的证据。正如所说:反射是**真的**难。您**只**在必要时使用它。新手程序员很少有理由使用反射。在转向 Java 反射之前,还有无数其他更重要(不太难)的东西需要学习。 (3认同)