Java.lang.Class 类

java.lang.Class.getMethods() 方法返回一个包含 Method 对象的数组,该对象反映了该类的所有公共方法或此 Class 对象表示的接口,包括由类或接口声明的以及从超类和超接口继承的那些。

如果此 Class 对象表示接口,则返回的数组不包含任何隐式声明的方法目的。因此,如果在此接口或其任何超级接口中没有显式声明方法,则返回的数组的长度为 0。如果此 Class 对象表示基本类型或 void,则返回的数组的长度为 0。

语法

public Method[] getMethods()
                    throws SecurityException

参数

无需参数。

返回值

返回Method的数组表示此类的公共方法的对象。

Exception

如果存在安全管理器 s 并且调用者的类加载器不存在,则抛出 SecurityException与当前类的类加载器相同或祖先,并且调用 s.checkPackageAccess() 拒绝访问此类的包。

示例:

下面的示例显示 java.lang.Class.getMethods() 方法的用法。

import java.lang.*;
import java.lang.reflect.*;

public class MyClass {
  public static void main(String[] args) {
    try {
      Class cls = Class.forName("java.lang.Boolean");

      //打印可访问的公共方法
      Method m[] = cls.getMethods();
      System.out.println("Methods are: ");
      for(Method i: m)
        System.out.println(i);
        
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

上述代码的输出将是:

Methods are: 
public boolean java.lang.Boolean.equals(java.lang.Object)
public java.lang.String java.lang.Boolean.toString()
public static java.lang.String java.lang.Boolean.toString(boolean)
public static int java.lang.Boolean.hashCode(boolean)
public int java.lang.Boolean.hashCode()
public int java.lang.Boolean.compareTo(java.lang.Boolean)
public int java.lang.Boolean.compareTo(java.lang.Object)
public static boolean java.lang.Boolean.getBoolean(java.lang.String)
public boolean java.lang.Boolean.booleanValue()
public static java.lang.Boolean java.lang.Boolean.valueOf(java.lang.String)
public static java.lang.Boolean java.lang.Boolean.valueOf(boolean)
public static int java.lang.Boolean.compare(boolean,boolean)
public static boolean java.lang.Boolean.parseBoolean(java.lang.String)
public static boolean java.lang.Boolean.logicalAnd(boolean,boolean)
public static boolean java.lang.Boolean.logicalOr(boolean,boolean)
public static boolean java.lang.Boolean.logicalXor(boolean,boolean)
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()