Holen Sie sich den Rückgabetyp der Methode mithilfe von Reflection

In diesem Beispiel erklären wir anhand eines einfachen Beispiels, wie man die Methoden einer Klasse mithilfe der Reflektion erhält und den Rückgabetyp erhält. Mit den folgenden Schritten können Sie die öffentlichen und privaten Methoden eines Objekts auflisten:

  • Rufen Sie die Klasseninstanz der Klasse ab, deren Methoden Sie auflisten möchten. In diesem Beispiel wird die Klasseninstanz der Math-Klasse abgerufen.
  • Rufen Sie die Methode getMethods() aus der Klasseninstanz auf, die das Array Method() zurückgibt, das die öffentlichen Methoden enthält.
  • Rufen Sie die Methode getDeclaredMethods() aus der Klasseninstanz auf, die das Array Method() zurückgibt, das alle Methoden enthält, unabhängig davon, ob es privat, öffentlich oder standardmäßig ist.
  • Rufen Sie dann getReturnType() für das Methodenobjekt auf, um den Rückgabetyp abzurufen.

Schauen wir uns dieses Beispiel an, um die Methoden und Rückgabetypen der Klasse java.lang.Math aufzulisten:

package javabeat.net.reflection;

import java.lang.reflect.Method;

/**
 * Get Method Return Types using Reflection
 *
 * @author krishna
 *
 */
public class JavaBeatReflectionExample {
	public static void main(String() args) throws Exception {
		Class<?> mathClass = java.lang.Math.class;
		Method() mathMethods;
		mathMethods = mathClass.getDeclaredMethods();
		for (int i = 0; i < mathMethods.length; i++) {
			System.out.println(mathMethods(i) + " ::  return type :: "
					+ mathMethods(i).getReturnType());
		}
	}

}

Ausgabe

public static int java.lang.Math.abs(int) ::  return type :: int
public static long java.lang.Math.abs(long) ::  return type :: long
public static float java.lang.Math.abs(float) ::  return type :: float
public static double java.lang.Math.abs(double) ::  return type :: double
public static double java.lang.Math.sin(double) ::  return type :: double
public static double java.lang.Math.cos(double) ::  return type :: double
public static double java.lang.Math.tan(double) ::  return type :: double
public static double java.lang.Math.atan2(double,double) ::  return type :: double
public static double java.lang.Math.sqrt(double) ::  return type :: double
public static double java.lang.Math.log(double) ::  return type :: double
public static double java.lang.Math.log10(double) ::  return type :: double
public static double java.lang.Math.pow(double,double) ::  return type :: double
public static double java.lang.Math.exp(double) ::  return type :: double
public static int java.lang.Math.min(int,int) ::  return type :: int
public static long java.lang.Math.min(long,long) ::  return type :: long
public static float java.lang.Math.min(float,float) ::  return type :: float
public static double java.lang.Math.min(double,double) ::  return type :: double
public static int java.lang.Math.max(int,int) ::  return type :: int
public static long java.lang.Math.max(long,long) ::  return type :: long
public static float java.lang.Math.max(float,float) ::  return type :: float
public static double java.lang.Math.max(double,double) ::  return type :: double
public static double java.lang.Math.scalb(double,int) ::  return type :: double
public static float java.lang.Math.scalb(float,int) ::  return type :: float
public static int java.lang.Math.getExponent(float) ::  return type :: int
public static int java.lang.Math.getExponent(double) ::  return type :: int
public static double java.lang.Math.signum(double) ::  return type :: double
public static float java.lang.Math.signum(float) ::  return type :: float
public static double java.lang.Math.asin(double) ::  return type :: double
public static double java.lang.Math.acos(double) ::  return type :: double
public static double java.lang.Math.atan(double) ::  return type :: double
public static double java.lang.Math.toRadians(double) ::  return type :: double
public static double java.lang.Math.toDegrees(double) ::  return type :: double
public static double java.lang.Math.cbrt(double) ::  return type :: double
public static double java.lang.Math.IEEEremainder(double,double) ::  return type :: double
public static double java.lang.Math.ceil(double) ::  return type :: double
public static double java.lang.Math.floor(double) ::  return type :: double
public static double java.lang.Math.rint(double) ::  return type :: double
public static int java.lang.Math.round(float) ::  return type :: int
public static long java.lang.Math.round(double) ::  return type :: long
private static synchronized void java.lang.Math.initRNG() ::  return type :: void
public static double java.lang.Math.random() ::  return type :: double
public static double java.lang.Math.ulp(double) ::  return type :: double
public static float java.lang.Math.ulp(float) ::  return type :: float
public static double java.lang.Math.sinh(double) ::  return type :: double
public static double java.lang.Math.cosh(double) ::  return type :: double
public static double java.lang.Math.tanh(double) ::  return type :: double
public static double java.lang.Math.hypot(double,double) ::  return type :: double
public static double java.lang.Math.expm1(double) ::  return type :: double
public static double java.lang.Math.log1p(double) ::  return type :: double
public static double java.lang.Math.copySign(double,double) ::  return type :: double
public static float java.lang.Math.copySign(float,float) ::  return type :: float
public static double java.lang.Math.nextAfter(double,double) ::  return type :: double
public static float java.lang.Math.nextAfter(float,double) ::  return type :: float
public static double java.lang.Math.nextUp(double) ::  return type :: double
public static float java.lang.Math.nextUp(float) ::  return type :: float

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen