Java 類 getDeclaredMethods() 方法



描述

Java 類 getDeclaredMethods() 方法返回一個 Method 物件陣列,包括公有、受保護、預設(包)訪問和私有方法,但不包括繼承的方法。如果類或介面沒有宣告任何方法,或者此 Class 物件表示基本型別、陣列類或 void,則該方法返回長度為 0 的陣列。

宣告

以下是 java.lang.Class.getDeclaredMethods() 方法的宣告

public Method[] getDeclaredMethods() throws SecurityException

引數

返回值

此方法返回表示此類所有宣告方法的 Method 物件陣列。

異常

SecurityException - 如果存在安全管理器 s。

獲取類的宣告方法示例

以下示例演示了 java.lang.Class.getDeclaredMethods() 方法的使用。在此程式中,我們建立了一個 ClassDemo 的例項,然後使用 getClass() 方法獲取例項的類。使用 getDeclaredMethods(),我們檢索了所有宣告的方法並列印它們。

package com.tutorialspoint;

import java.lang.reflect.Method;

public class ClassDemo {

   public static void main(String[] args) {

      ClassDemo cls = new ClassDemo();
      Class c = cls.getClass();

      // returns the array of Method objects 
      Method[] m = c.getDeclaredMethods();
      for(int i = 0; i < m.length; i++) {
         System.out.println("method = " + m[i].toString());
      }
   }

   public ClassDemo() {
      // no argument constructor
   }   

   public void showString(String string1) {
      this.string1 = string1;
   }

   private void showInteger(Integer i) {
      this.i = i;
   }

   public Integer i = 10;
   private String string1 = "tutorialspoint"; 
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

method = private void com.tutorialspoint.ClassDemo.showInteger(java.lang.Integer)
method = public void com.tutorialspoint.ClassDemo.showString(java.lang.String)
method = public static void com.tutorialspoint.ClassDemo.main(java.lang.String[])

獲取 ArrayList 的宣告方法示例

以下示例演示了 java.lang.Class.getDeclaredMethods() 方法的使用。在此程式中,我們使用了 ArrayList 的類。使用 getDeclaredMethods(),我們檢索了所有宣告的方法並列印它們。

package com.tutorialspoint;

import java.lang.reflect.Method;
import java.util.ArrayList;

public class ClassDemo {

   public static void main(String[] args) {

      Class c = ArrayList.class;

      // returns the array of Method objects 
      Method[] m = c.getDeclaredMethods();
      for(int i = 0; i < m.length; i++) {
         System.out.println("method = " + m[i].toString());
      }
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

method = public boolean java.util.ArrayList.remove(java.lang.Object)
method = public java.lang.Object java.util.ArrayList.remove(int)
method = public int java.util.ArrayList.size()
method = public java.lang.Object java.util.ArrayList.get(int)
method = public boolean java.util.ArrayList.equals(java.lang.Object)
method = public int java.util.ArrayList.hashCode()
method = public java.lang.Object java.util.ArrayList.clone()
method = public int java.util.ArrayList.indexOf(java.lang.Object)
method = public void java.util.ArrayList.clear()
method = public int java.util.ArrayList.lastIndexOf(java.lang.Object)
method = public boolean java.util.ArrayList.isEmpty()
method = public void java.util.ArrayList.replaceAll(java.util.function.UnaryOperator)
method = private void java.util.ArrayList.add(java.lang.Object,java.lang.Object[],int)
method = public void java.util.ArrayList.add(int,java.lang.Object)
method = public boolean java.util.ArrayList.add(java.lang.Object)
method = public java.util.List java.util.ArrayList.subList(int,int)
method = public java.lang.Object[] java.util.ArrayList.toArray()
method = public java.lang.Object[] java.util.ArrayList.toArray(java.lang.Object[])
method = public java.util.Iterator java.util.ArrayList.iterator()
method = public boolean java.util.ArrayList.contains(java.lang.Object)
method = public java.util.Spliterator java.util.ArrayList.spliterator()
method = public boolean java.util.ArrayList.addAll(int,java.util.Collection)
method = public boolean java.util.ArrayList.addAll(java.util.Collection)
method = public java.lang.Object java.util.ArrayList.set(int,java.lang.Object)
method = private void java.util.ArrayList.readObject(java.io.ObjectInputStream) throws java.io.IOException,java.lang.ClassNotFoundException
method = private void java.util.ArrayList.writeObject(java.io.ObjectOutputStream) throws java.io.IOException
method = public void java.util.ArrayList.forEach(java.util.function.Consumer)
method = public void java.util.ArrayList.sort(java.util.Comparator)
method = public void java.util.ArrayList.ensureCapacity(int)
method = public void java.util.ArrayList.trimToSize()
method = java.lang.Object java.util.ArrayList.elementData(int)
method = private java.lang.Object[] java.util.ArrayList.grow()
method = private java.lang.Object[] java.util.ArrayList.grow(int)
method = int java.util.ArrayList.indexOfRange(java.lang.Object,int,int)
method = int java.util.ArrayList.lastIndexOfRange(java.lang.Object,int,int)
method = private void java.util.ArrayList.rangeCheckForAdd(int)
method = private void java.util.ArrayList.fastRemove(java.lang.Object[],int)
method = private boolean java.util.ArrayList.equalsArrayList(java.util.ArrayList)
method = boolean java.util.ArrayList.equalsRange(java.util.List,int,int)
method = private void java.util.ArrayList.checkForComodification(int)
method = int java.util.ArrayList.hashCodeRange(int,int)
method = private static java.lang.String java.util.ArrayList.outOfBoundsMsg(int,int)
method = private java.lang.String java.util.ArrayList.outOfBoundsMsg(int)
method = private void java.util.ArrayList.shiftTailOverGap(java.lang.Object[],int,int)
method = boolean java.util.ArrayList.batchRemove(java.util.Collection,boolean,int,int)
method = static java.lang.Object java.util.ArrayList.elementAt(java.lang.Object[],int)
method = public boolean java.util.ArrayList.removeIf(java.util.function.Predicate)
method = boolean java.util.ArrayList.removeIf(java.util.function.Predicate,int,int)
method = private static long[] java.util.ArrayList.nBits(int)
method = private static void java.util.ArrayList.setBit(long[],int)
method = private static boolean java.util.ArrayList.isClear(long[],int)
method = private void java.util.ArrayList.replaceAllRange(java.util.function.UnaryOperator,int,int)
method = public java.lang.Object java.util.ArrayList.getFirst()
method = public java.lang.Object java.util.ArrayList.getLast()
method = public void java.util.ArrayList.addFirst(java.lang.Object)
method = public void java.util.ArrayList.addLast(java.lang.Object)
method = public java.lang.Object java.util.ArrayList.removeFirst()
method = public java.lang.Object java.util.ArrayList.removeLast()
method = protected void java.util.ArrayList.removeRange(int,int)
method = public boolean java.util.ArrayList.removeAll(java.util.Collection)
method = public boolean java.util.ArrayList.retainAll(java.util.Collection)
method = public java.util.ListIterator java.util.ArrayList.listIterator(int)
method = public java.util.ListIterator java.util.ArrayList.listIterator()
method = void java.util.ArrayList.checkInvariants()

獲取 Thread 的宣告方法示例

以下示例演示了 java.lang.Class.getDeclaredMethods() 方法的使用。在此程式中,我們使用了 Thread 的類。使用 getDeclaredMethods(),我們檢索了所有宣告的方法並列印它們。

package com.tutorialspoint;

import java.lang.reflect.Method;

public class ClassDemo {

   public static void main(String[] args) {

      Class c = Thread.class;

      // returns the array of Method objects 
      Method[] m = c.getDeclaredMethods();
      for(int i = 0; i < m.length; i++) {
         System.out.println("method = " + m[i].toString());
      }
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

method = public final java.lang.String java.lang.Thread.getName()
method = public java.lang.StackTraceElement[] java.lang.Thread.getStackTrace()
method = void java.lang.Thread.priority(int)
method = void java.lang.Thread.daemon(boolean)
method = public void java.lang.Thread.run()
method = final void java.lang.Thread.runWith(java.lang.Object,java.lang.Runnable)
method = public void java.lang.Thread.interrupt()
method = private void java.lang.Thread.exit()
method = void java.lang.Thread.dispatchUncaughtException(java.lang.Throwable)
method = private static java.lang.ClassLoader java.lang.Thread.contextClassLoader(java.lang.Thread)
method = public java.lang.String java.lang.Thread.toString()
method = protected java.lang.Object java.lang.Thread.clone() throws java.lang.CloneNotSupportedException
method = static native java.lang.Thread java.lang.Thread.currentCarrierThread()
method = public static native java.lang.Thread java.lang.Thread.currentThread()
method = static native java.lang.Object[] java.lang.Thread.scopedValueCache()
method = static native void java.lang.Thread.setScopedValueCache(java.lang.Object[])
method = static native java.lang.Object java.lang.Thread.findScopedValueBindings()
method = native void java.lang.Thread.setCurrentThread(java.lang.Thread)
method = public static void java.lang.Thread.onSpinWait()
method = static native void java.lang.Thread.ensureMaterializedForStackWalk(java.lang.Object)
method = private static native java.lang.StackTraceElement[][] java.lang.Thread.dumpThreads(java.lang.Thread[])
method = public final boolean java.lang.Thread.isVirtual()
method = boolean java.lang.Thread.getAndClearInterrupt()
method = public final void java.lang.Thread.join(long) throws java.lang.InterruptedException
method = public final void java.lang.Thread.join(long,int) throws java.lang.InterruptedException
method = public final void java.lang.Thread.join() throws java.lang.InterruptedException
method = public final boolean java.lang.Thread.join(java.time.Duration) throws java.lang.InterruptedException
method = private static native void java.lang.Thread.registerNatives()
method = private static java.lang.String java.lang.Thread.checkName(java.lang.String)
method = public void java.lang.Thread.setContextClassLoader(java.lang.ClassLoader)
method = public final java.lang.ThreadGroup java.lang.Thread.getThreadGroup()
method = public final void java.lang.Thread.checkAccess()
method = public static void java.lang.Thread.dumpStack()
method = public final void java.lang.Thread.setPriority(int)
method = public final void java.lang.Thread.setDaemon(boolean)
method = public void java.lang.Thread.start()
method = void java.lang.Thread.start(jdk.internal.vm.ThreadContainer)
method = static java.lang.Object java.lang.Thread.scopedValueBindings()
method = private static native void java.lang.Thread.yield0()
method = private static jdk.internal.event.ThreadSleepEvent java.lang.Thread.beforeSleep(long)
method = private static native void java.lang.Thread.sleep0(long) throws java.lang.InterruptedException
method = private static void java.lang.Thread.afterSleep(jdk.internal.event.ThreadSleepEvent)
method = private static boolean java.lang.Thread.isCCLOverridden(java.lang.Class)
method = public java.lang.ClassLoader java.lang.Thread.getContextClassLoader()
method = public final int java.lang.Thread.getPriority()
method = public final boolean java.lang.Thread.isDaemon()
method = static java.lang.String java.lang.Thread.genThreadName()
method = private native void java.lang.Thread.start0()
method = void java.lang.Thread.setThreadContainer(jdk.internal.vm.ThreadContainer)
method = void java.lang.Thread.inheritScopedValueBindings(jdk.internal.vm.ThreadContainer)
method = void java.lang.Thread.uncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
method = jdk.internal.vm.StackableScope java.lang.Thread.headStackableScopes()
method = jdk.internal.vm.ThreadContainer java.lang.Thread.threadContainer()
method = void java.lang.Thread.clearReferences()
method = public static boolean java.lang.Thread.interrupted()
method = private native void java.lang.Thread.interrupt0()
method = private static native void java.lang.Thread.clearInterruptEvent()
method = boolean java.lang.Thread.alive()
method = private native void java.lang.Thread.setPriority0(int)
method = private native void java.lang.Thread.setNativeName(java.lang.String)
method = boolean java.lang.Thread.isTerminated()
method = static java.lang.ThreadGroup java.lang.Thread.virtualThreadGroup()
method = public static int java.lang.Thread.activeCount()
method = public static int java.lang.Thread.enumerate(java.lang.Thread[])
method = public final boolean java.lang.Thread.isAlive()
method = java.lang.Thread$State java.lang.Thread.threadState()
method = public final long java.lang.Thread.threadId()
method = java.lang.StackTraceElement[] java.lang.Thread.asyncGetStackTrace()
method = private native java.lang.Object java.lang.Thread.getStackTrace0()
method = private static native java.lang.Thread[] java.lang.Thread.getThreads()
method = public static void java.lang.Thread.setDefaultUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
method = public java.lang.Thread$UncaughtExceptionHandler java.lang.Thread.getUncaughtExceptionHandler()
method = static void java.lang.Thread.setScopedValueBindings(java.lang.Object)
method = static void java.lang.Thread.blockedOn(sun.nio.ch.Interruptible)
method = jdk.internal.vm.Continuation java.lang.Thread.getContinuation()
method = void java.lang.Thread.setContinuation(jdk.internal.vm.Continuation)
method = public static void java.lang.Thread.yield()
method = public static void java.lang.Thread.sleep(long,int) throws java.lang.InterruptedException
method = public static void java.lang.Thread.sleep(java.time.Duration) throws java.lang.InterruptedException
method = public static void java.lang.Thread.sleep(long) throws java.lang.InterruptedException
method = public static java.lang.Thread$Builder$OfPlatform java.lang.Thread.ofPlatform()
method = public static java.lang.Thread$Builder$OfVirtual java.lang.Thread.ofVirtual()
method = public static java.lang.Thread java.lang.Thread.startVirtualThread(java.lang.Runnable)
method = public final void java.lang.Thread.stop()
method = public boolean java.lang.Thread.isInterrupted()
method = final void java.lang.Thread.setInterrupt()
method = final void java.lang.Thread.clearInterrupt()
method = public final void java.lang.Thread.suspend()
method = public final void java.lang.Thread.resume()
method = public final synchronized void java.lang.Thread.setName(java.lang.String)
method = public int java.lang.Thread.countStackFrames()
method = public static native boolean java.lang.Thread.holdsLock(java.lang.Object)
method = public static java.util.Map java.lang.Thread.getAllStackTraces()
method = private static boolean java.lang.Thread.auditSubclass(java.lang.Class)
method = static java.lang.Thread[] java.lang.Thread.getAllThreads()
method = public long java.lang.Thread.getId()
method = public java.lang.Thread$State java.lang.Thread.getState()
method = public static java.lang.Thread$UncaughtExceptionHandler java.lang.Thread.getDefaultUncaughtExceptionHandler()
method = public void java.lang.Thread.setUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)
method = static void java.lang.Thread.setHeadStackableScope(jdk.internal.vm.StackableScope)
method = private static native long java.lang.Thread.getNextThreadIdOffset()
java_lang_class.htm
廣告