Java Class 类 getDeclaredMethods()方法及示例

Class类getDeclaredMethods()方法

  • getDeclaredMethods()方法在java.lang包中可用。

  • getDeclaredMethods()方法用于返回表示所有方法的方法对象数组(即,方法是私有方法,公共方法,受保护方法还是默认方法),但不包括继承的方法。

  • getDeclaredMethods()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • 返回方法对象数组时,getDeclaredMethods()方法可能会引发异常。
    SecurityException:在此异常中,当安全管理器存在时可能会引发此异常。

语法:

    public Method[] getDeclaredMethods();

参数:

  • 它不接受任何参数。

返回值:

此方法的返回类型为Method [],它返回一个Method对象数组,该对象表示此类中所有已声明的方法(不包括继承的Methods)。

注意:

  • 当类或接口不包含方法时,将返回0。

  • 当此类对象包含基本类型,数组类或void类型时,将返回0。

示例

//Java程序演示示例 
//Method [] getDeclaredMethods() 
//类的方法 

import java.lang.reflect.*;

public class GetDeclaredMethodsOfClass {
    public static void main(String[] args) throws Exception {
        Thread th = new Thread();

        //获取String的Class对象
        Class cl = th.getClass();

        //调用线程类方法
        Method[] methods = cl.getDeclaredMethods();

        for (int i = 0; i < methods.length; ++i) {
            System.out.print("String Class Methods = ");
            System.out.println(methods[i].toString());
        }
    }
}

输出结果

String Class Methods = public void java.lang.Thread.run()
String Class Methods = private void java.lang.Thread.exit()
String Class Methods = private void java.lang.Thread.dispatchUncaughtException(java.lang.Throwable)
String Class Methods = public java.lang.String java.lang.Thread.toString()
String Class Methods = protected java.lang.Object java.lang.Thread.clone() throws java.lang.CloneNotSupportedException
String Class Methods = public boolean java.lang.Thread.isInterrupted()
String Class Methods = private native boolean java.lang.Thread.isInterrupted(boolean)
String Class Methods = public static native java.lang.Thread java.lang.Thread.currentThread()
String Class Methods = public static void java.lang.Thread.onSpinWait()
String Class Methods = private static native void java.lang.Thread.registerNatives()
String Class Methods = public final java.lang.String java.lang.Thread.getName()
String Class Methods = public final void java.lang.Thread.join() throws java.lang.InterruptedException
String Class Methods = public final synchronized void java.lang.Thread.join(long,int) throws java.lang.InterruptedException
String Class Methods = public final synchronized void java.lang.Thread.join(long) throws java.lang.InterruptedException
String Class Methods = public final java.lang.ThreadGroup java.lang.Thread.getThreadGroup()
String Class Methods = public void java.lang.Thread.setContextClassLoader(java.lang.ClassLoader)
String Class Methods = public java.lang.StackTraceElement[] java.lang.Thread.getStackTrace()
String Class Methods = public static native boolean java.lang.Thread.holdsLock(java.lang.Object)
String Class Methods = public final void java.lang.Thread.checkAccess()
String Class Methods = public static void java.lang.Thread.dumpStack()
String Class Methods = public final void java.lang.Thread.setPriority(int)
String Class Methods = public final void java.lang.Thread.setDaemon(boolean)
String Class Methods = public synchronized void java.lang.Thread.start()
String Class Methods = private static synchronized int java.lang.Thread.nextThreadNum()
String Class Methods = private static synchronized long java.lang.Thread.nextThreadID()
String Class Methods = static void java.lang.Thread.blockedOn(sun.nio.ch.Interruptible)
String Class Methods = public static native void java.lang.Thread.yield()
String Class Methods = public static void java.lang.Thread.sleep(long,int) throws java.lang.InterruptedException
String Class Methods = public static native void java.lang.Thread.sleep(long) throws java.lang.InterruptedException
String Class Methods = private native void java.lang.Thread.start0()
String Class Methods = public final void java.lang.Thread.stop()
String Class Methods = public void java.lang.Thread.interrupt()
String Class Methods = public static boolean java.lang.Thread.interrupted()
String Class Methods = public final native boolean java.lang.Thread.isAlive()
String Class Methods = public final void java.lang.Thread.suspend()
String Class Methods = public final void java.lang.Thread.resume()
String Class Methods = public final int java.lang.Thread.getPriority()
String Class Methods = public final synchronized void java.lang.Thread.setName(java.lang.String)
String Class Methods = public static int java.lang.Thread.activeCount()
String Class Methods = public static int java.lang.Thread.enumerate(java.lang.Thread[])
String Class Methods = public native int java.lang.Thread.countStackFrames()
String Class Methods = public final boolean java.lang.Thread.isDaemon()
String Class Methods = public java.lang.ClassLoader java.lang.Thread.getContextClassLoader()
String Class Methods = public static java.util.Map java.lang.Thread.getAllStackTraces()
String Class Methods = private static boolean java.lang.Thread.isCCLOverridden(java.lang.Class)
String Class Methods = private static boolean java.lang.Thread.auditSubclass(java.lang.Class)
String Class Methods = private static native java.lang.StackTraceElement[][] java.lang.Thread.dumpThreads(java.lang.Thread[])
String Class Methods = private static native java.lang.Thread[] java.lang.Thread.getThreads()
String Class Methods = public long java.lang.Thread.getId()
String Class Methods = public java.lang.Thread$State java.lang.Thread.getState()
String Class Methods = public static void java.lang.Thread.setDefaultUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
String Class Methods = public static java.lang.Thread$UncaughtExceptionHandler java.lang.Thread.getDefaultUncaughtExceptionHandler()
String Class Methods = public java.lang.Thread$UncaughtExceptionHandler java.lang.Thread.getUncaughtExceptionHandler()
String Class Methods = public void java.lang.Thread.setUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
String Class Methods = static void java.lang.Thread.processQueue(java.lang.ref.ReferenceQueue,java.util.concurrent.ConcurrentMap)
String Class Methods = private native void java.lang.Thread.setPriority0(int)
String Class Methods = private native void java.lang.Thread.stop0(java.lang.Object)
String Class Methods = private native void java.lang.Thread.suspend0()
String Class Methods = private native void java.lang.Thread.resume0()
String Class Methods = private native void java.lang.Thread.interrupt0()
String Class Methods = private native void java.lang.Thread.setNativeName(java.lang.String)