📅  最后修改于: 2023-12-03 14:42:58.647000             🧑  作者: Mango
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()
方法。