当前位置: 首页 > 编程笔记 >

使用Java Reflection列出类的方法

林浩漫
2023-03-14
本文向大家介绍使用Java Reflection列出类的方法,包括了使用Java Reflection列出类的方法的使用技巧和注意事项,需要的朋友参考一下

可以使用java.lang.Class.getDeclaredMethods()方法列出类的方法。此方法返回一个数组,其中包含具有公共,私有,受保护和默认访问权限的所有Method对象。但是,不包括继承的方法。

另外,getDeclaredMethods()如果类或接口没有方法,或者在Class对象中表示原始类型,数组类或void ,则该方法返回零长度数组。

演示此的程序如下所示-

示例

import java.lang.reflect.*;
public class Demo {
   public static void main(String[] args) {
      Class c = Thread.class;
      Method[] methods = c.getDeclaredMethods();
      for(int i = 0; i < methods.length; i++) {
         System.out.println("The method is: " + methods[i].toString());
      }
   }
}

输出结果

The method is: public void java.lang.Thread.run()
The method is: private void java.lang.Thread.exit()
The method is: private void java.lang.Thread.dispatchUncaughtException(java.lang.Throwable)
The method is: public java.lang.String java.lang.Thread.toString()
The method is: protected java.lang.Object java.lang.Thread.clone() throws java.lang.CloneNotSupportedException
The method is: public boolean java.lang.Thread.isInterrupted()
The method is: private native boolean java.lang.Thread.isInterrupted(boolean)
The method is: public static native java.lang.Thread java.lang.Thread.currentThread()
The method is: private static native void java.lang.Thread.registerNatives()
The method is: public final java.lang.String java.lang.Thread.getName()
The method is: public synchronized void java.lang.Thread.start()
The method is: public final synchronized void java.lang.Thread.join(long,int) throws java.lang.InterruptedException
The method is: public final synchronized void java.lang.Thread.join(long) throws java.lang.InterruptedException
The method is: public final void java.lang.Thread.join() throws java.lang.InterruptedException
The method is: private void java.lang.Thread.init(java.lang.ThreadGroup,java.lang.Runnable,java.lang.String,long,java.security.AccessControlContext,boolean)
The method is: private void java.lang.Thread.init(java.lang.ThreadGroup,java.lang.Runnable,java.lang.String,long)
The method is: public final java.lang.ThreadGroup java.lang.Thread.getThreadGroup()
The method is: public java.lang.StackTraceElement[] java.lang.Thread.getStackTrace()
The method is: public static native boolean java.lang.Thread.holdsLock(java.lang.Object)
The method is: public final void java.lang.Thread.checkAccess()
The method is: public static void java.lang.Thread.dumpStack()
The method is: public static native void java.lang.Thread.yield()
The method is: public final void java.lang.Thread.setPriority(int)
The method is: public final void java.lang.Thread.setDaemon(boolean)
The method is: private static synchronized int java.lang.Thread.nextThreadNum()
The method is: private static synchronized long java.lang.Thread.nextThreadID()
The method is: void java.lang.Thread.blockedOn(sun.nio.ch.Interruptible)
The method is: public static native void java.lang.Thread.sleep(long) throws java.lang.InterruptedException
The method is: public static void java.lang.Thread.sleep(long,int) throws java.lang.InterruptedException
The method is: private native void java.lang.Thread.start0()
The method is: public final synchronized void java.lang.Thread.stop(java.lang.Throwable)
The method is: public final void java.lang.Thread.stop()
The method is: public void java.lang.Thread.interrupt()
The method is: public static boolean java.lang.Thread.interrupted()
The method is: public void java.lang.Thread.destroy()
The method is: public final native boolean java.lang.Thread.isAlive()
The method is: public final void java.lang.Thread.suspend()
The method is: public final void java.lang.Thread.resume()
The method is: public final int java.lang.Thread.getPriority()
The method is: public final synchronized void java.lang.Thread.setName(java.lang.String)
The method is: public static int java.lang.Thread.activeCount()
The method is: public static int java.lang.Thread.enumerate(java.lang.Thread[])
The method is: public native int java.lang.Thread.countStackFrames()
The method is: public final boolean java.lang.Thread.isDaemon()
The method is: public java.lang.ClassLoader java.lang.Thread.getContextClassLoader()
The method is: public void java.lang.Thread.setContextClassLoader(java.lang.ClassLoader)
The method is: public static java.util.Map java.lang.Thread.getAllStackTraces()
The method is: private static boolean java.lang.Thread.isCCLOverridden(java.lang.Class)
The method is: private static boolean java.lang.Thread.auditSubclass(java.lang.Class)
The method is: private static native java.lang.StackTraceElement[][] java.lang.Thread.dumpThreads(java.lang.Thread[])
The method is: private static native java.lang.Thread[] java.lang.Thread.getThreads()
The method is: public long java.lang.Thread.getId()
The method is: public java.lang.Thread$State java.lang.Thread.getState()
The method is: public static void java.lang.Thread.setDefaultUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
The method is: public static java.lang.Thread$UncaughtExceptionHandler java.lang.Thread.getDefaultUncaughtExceptionHandler()
The method is: public java.lang.Thread$UncaughtExceptionHandler java.lang.Thread.getUncaughtExceptionHandler()
The method is: public void java.lang.Thread.setUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
The method is: static void java.lang.Thread.processQueue(java.lang.ref.ReferenceQueue,java.util.concurrent.ConcurrentMap)
The method is: private native void java.lang.Thread.setPriority0(int)
The method is: private native void java.lang.Thread.stop0(java.lang.Object)
The method is: private native void java.lang.Thread.suspend0()
The method is: private native void java.lang.Thread.resume0()
The method is: private native void java.lang.Thread.interrupt0()
The method is: private native void java.lang.Thread.setNativeName(java.lang.String)
 类似资料:
  • 本文向大家介绍使用 Iisftp.vbs 列出FTP站点的方法,包括了使用 Iisftp.vbs 列出FTP站点的方法的使用技巧和注意事项,需要的朋友参考一下 应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 管理员经常需要检查他们的文件传输协议 (FTP) 站点的状态和/或属性。要检查站点

  • 本文向大家介绍使用 Iisext.vbs 列出Web服务扩展的方法,包括了使用 Iisext.vbs 列出Web服务扩展的方法的使用技巧和注意事项,需要的朋友参考一下 应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 可使用命令行脚本 iisext.vbs(存储在 systemroot\sy

  • 本文向大家介绍使用 Iisext.vbs 列出 Web 服务扩展文件的方法,包括了使用 Iisext.vbs 列出 Web 服务扩展文件的方法的使用技巧和注意事项,需要的朋友参考一下 应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 可使用命令行脚本 iisext.vbs(存储在 syste

  • 问题内容: 例如, 我正在尝试使用运行时反射获取列表。 问题答案: 试试这个: 游乐场的例子 获取接口类型的reflect.Type是棘手的部分。请参阅如何获取接口的reflect.Type?进行解释。

  • 而输出是 谁能详细说明一下1380605909318和61341428160000之间的区别?

  • 问题内容: 如果我有两个类,而其中一个有一个要在其他类中使用的函数,那么该使用什么,这样就不必重写我的函数了? 问题答案: 有两种选择: 在您的类中实例化一个对象,然后在其上调用所需的方法 使用@classmethod将函数转换为类方法 例: 或使用继承(如果适用):