Clase java.lang.MethodType en Java

MethodType es una clase que pertenece al paquete java.lang. Esta clase consta de varios tipos de métodos que ayudan en la mayoría de los casos a encontrar el tipo de método en función del objeto de entrada o los parámetros del método.

  • Todas las instancias de methodType son inmutables. Esto significa que los objetos de la clase methodType no pueden ser anulados por ningún otro dato de objetos.
  • En más o menos situaciones, los objetos de tipo de método se derivan de instrucciones de código de bytes.
  • Como todas las demás clases, la clase MethodType también puede representar individualmente CONSTANT_MethodType en el grupo de constantes.
  • La mayoría de los métodos de la clase MethodType se definen mediante Static porque estos métodos deben vincularse a su clase Methodtype en lugar de a los objetos.

Sintaxis: declaración de clase

public final class MethodType extends Object implements Serializable {
 
// MethodType extends Object Class which is root of class hierarchy
// The serialization interface has no methods or fields and serves only
// to identify the semantics of being serializable.

}

Métodos de la clase MethodType:

Métodos Descripción
appendParameterTypes(Class<?>… ptypesToInsert) Este método busca o crea un tipo de método con tipos de parámetros adicionales.
 appendParameterTypes(List<Class<?>> ptypesToInsert) Este método busca o crea un tipo de método con tipos de parámetros adicionales.
cambiarTipoDeParámetro() Este método busca o crea un tipo de método con un solo tipo de parámetro diferente.
cambiarTipoRetorno() Este método encuentra o crea un tipo de método con un tipo de retorno diferente.
dropParameterTypes() Este método encuentra o crea un tipo de método con algunos tipos de parámetros omitidos.
 es igual() Este método compara el objeto especificado con este tipo para la igualdad.
 clear() Este método Borra todos los tipos de referencia a Objeto.
fromMethodDescriptorString() Este método encuentra o crea una instancia de un tipo de método, dada la ortografía de su descriptor de código de bytes.
genérico() Este método convierte todos los tipos, tanto de referencia como primitivos, en objetos.
genericMethodType(int objectArgCount) Este método encuentra o crea un tipo de método cuyos componentes son todos Objeto.
 genericMethodType(int objectArgCount, boolean finalArray) Este método encuentra o crea un tipo de método cuyos componentes son Object con una array Object[] final opcional.
código hash() Este método devuelve el valor del código hash para este tipo de método.
tienePrimitivas() Este método informa si este tipo contiene un argumento primitivo o un valor de retorno.
 tiene envolturas() Este método informa si este tipo contiene un argumento contenedor o un valor de retorno.
 insertParameterTypes(int num, Class<) Este método busca o crea un tipo de método con tipos de parámetros adicionales.
insertParameterTypes(int num, List<Class<?>> ptypesToInsert) Este método busca o crea un tipo de método con tipos de parámetros adicionales.
 methodType(Class<?> rtype) Este método encuentra o crea un tipo de método con los componentes dados.
methodType(Class<?> rtype, Class<?> ptype0) Este método encuentra o crea un tipo de método con los componentes dados.
 methodType(Class<?> rtype, Class<?>[] ptypes) Este método busca o crea una instancia del tipo de método dado.
methodType(Class<?> rtype, Class<?> ptype0, Class<?>… ptypes) Este método encuentra o crea un tipo de método con los componentes dados.
methodType(Class<?> rtype, List<Class<?>> ptypes) Este método encuentra o crea un tipo de método con los componentes dados.
 methodType(Class<?> rtype, MethodType ptypes) Este método encuentra o crea un tipo de método con los componentes dados.
 parámetroArray() Este método presenta los tipos de parámetros como una array (un método conveniente).
 parámetroCount() Este método devuelve el número de tipos de parámetros en este tipo de método.
Lista de parámetros() Este método presenta los tipos de parámetros como una lista (un método conveniente).
 tipoparámetro(int num) Este método devuelve el tipo de parámetro en el índice especificado, dentro de este tipo de método.
TipoRetorno() Este método devuelve el tipo de retorno de este tipo de método.
 aMethodDescriptorString() Este método Produce una representación de descriptor de código de bytes del tipo de método.
 Enstringr() Este método devuelve una representación de string del tipo de método, de la forma “(PT0,PT1…)RT”.
 desenvolver() Este método convierte todos los tipos de contenedores en sus tipos primitivos correspondientes.
 envolver() Este método convierte todos los tipos primitivos en sus tipos de contenedor correspondientes.

Métodos de ejemplo de esta clase

Java

// Java Program to demonstrate MethodType Class
// from java.lang.invoke package
 
// Importing required classes from java.lang package
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
 
// Main class
class GFG {
 
    // Method 1
    // Helper method
    static void hello()
    {
 
        // Print statement
        System.out.println("GeeksForGeeks");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args) throws Throwable
    {
 
        // Creating an object MethodHandles class to
        // create an object lookup
        MethodHandles.Lookup lookup
            = MethodHandles.lookup();
 
        // Returning the type of method used using
        // methodType class
 
        // Now, we are also invoking the hello() method to
        // print the context present in it
        MethodHandle mh = lookup.findStatic(
            GFG.class, "hello",
            MethodType.methodType(void.class));
 
        // Lastly invoking invokeExact() method
        // using method handle
        mh.invokeExact();
    }
}
Producción

GeeksForGeeks

Publicación traducida automáticamente

Artículo escrito por pranaythanneru y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *