Sprache

MethodHandles.Lookup.UnreflectSpecial(Method, Class) Methode

Definition

Erzeugt ein Methodenhandle für eine reflektierte Methode.

[Android.Runtime.Register("unreflectSpecial", "(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public Java.Lang.Invoke.MethodHandle UnreflectSpecial(Java.Lang.Reflect.Method m, Java.Lang.Class specialCaller);
[<Android.Runtime.Register("unreflectSpecial", "(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
member this.UnreflectSpecial : Java.Lang.Reflect.Method * Java.Lang.Class -> Java.Lang.Invoke.MethodHandle

Parameter

m
Method

die reflektierte Methode

specialCaller
Class

die Klasse, die die Methode nominal aufruft

Gibt zurück

ein Methodenhandle, mit dem die reflektierte Methode aufgerufen werden kann

Attribute

Hinweise

Erzeugt ein Methodenhandle für eine reflektierte Methode. Es wird Überprüfungen auf Außerkraftsetzungsmethoden für den Empfänger umgangen, als ob von einer invokespecial Anweisung innerhalb der explizit angegebenen specialCalleraufgerufen wird. Der Typ des Methodenhandles ist die der Methode, wobei ein entsprechend eingeschränkter Empfängertyp vorangestellt ist. (Der Empfängertyp ist specialCaller oder ein Untertyp.) Wenn das Flag der Methode accessible nicht festgelegt ist, wird die Zugriffsüberprüfung sofort im Auftrag der Nachschlageklasse ausgeführt, als ob invokespecial eine Anweisung verknüpft wurde.

Wenn die explizit angegebene Aufruferklasse nicht mit der Nachschlageklasse identisch ist oder dieses Nachschlageobjekt nicht über private Zugriffsberechtigungen verfügt, schlägt der Zugriff fehl.

Der zurückgegebene Methodenhandle weist die Variable MethodHandle#asVarargsCollector auf, wenn und nur dann, wenn der Variablenvariablen-Modifizierer bit (0x0080) der Methode festgelegt ist.

Java Dokumentation für java.lang.invoke.MethodHandles.Lookup.unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: