📜  Java中的类 getMethods() 方法和示例(1)

📅  最后修改于: 2023-12-03 14:42:58.647000             🧑  作者: Mango

Java中的类 getMethods() 方法和示例

Java中的getMethods()方法属于反射API,可以用于获取类中所有公共方法(包括继承来的)的信息。本文将详细介绍getMethods()方法以及如何使用它来获取方法信息。

方法签名
public Method[] getMethods() throws SecurityException
返回值

该方法返回一个Method对象数组,表示该类所有公共方法的信息。

示例

下面是一个简单的示例,演示如何使用getMethods()方法获取一个类的所有公共方法的信息。

import java.lang.reflect.Method;

public class Example {
  public void publicMethod1() { }
  public void publicMethod2() { }
  private void privateMethod() { }
  protected void protectedMethod() { }

  public static void main(String[] args) {
    Example obj = new Example();
    Method[] methods = obj.getClass().getMethods();
    for (Method method : methods) {
      System.out.println("Method Name: " + method.getName());
      System.out.println("Return Type: " + method.getReturnType().getName());
      System.out.println("---------------------------------------------");
    }
  }
}

在上面的示例中,我们定义了一个名为Example的类,并在该类中定义了四个方法:两个公共方法publicMethod1()publicMethod2()、一个私有方法privateMethod(),以及一个受保护的方法protectedMethod()。然后,我们使用getMethods()方法获取该类的所有公共方法的信息,并在控制台上打印出来。

运行上述程序,将输出如下结果:

Method Name: equals
Return Type: boolean
---------------------------------------------
Method Name: toString
Return Type: java.lang.String
---------------------------------------------
Method Name: hashCode
Return Type: int
---------------------------------------------
Method Name: getClass
Return Type: java.lang.Class
---------------------------------------------
Method Name: publicMethod1
Return Type: void
---------------------------------------------
Method Name: publicMethod2
Return Type: void
---------------------------------------------
Method Name: wait
Return Type: void
---------------------------------------------
Method Name: wait
Return Type: void
---------------------------------------------
Method Name: wait
Return Type: void
---------------------------------------------
Method Name: notify
Return Type: void
---------------------------------------------
Method Name: notifyAll
Return Type: void
---------------------------------------------

从输出结果中可以看到,getMethods()方法获取的是该类中所有公共方法的信息,包括继承自父类的公共方法(例如equals()toString()hashCode()等),以及该类本身定义的公共方法(例如publicMethod1()publicMethod2()等)。而对于私有方法和受保护的方法,getMethods()方法是无法获取的。

总结

本文介绍了Java中的getMethods()方法,该方法可以用于获取一个类的所有公共方法的信息。如果您需要获取一个类中的私有方法和受保护的方法,可以使用getDeclaredMethod()方法。如果您需要获取一个类中所有的方法(包括私有方法和受保护的方法),可以使用getDeclaredMethods()方法。