public class PolymorphicMethodRef extends SootMethodRefImpl
MethodHandle and
VarHandle. As described in
https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.12.4.4 method references to the methods with a
polymorphic signature, which are the methods in `java.lang.invoke.MethodHandle` and `java.lang.invoke.VarHandle`, require
special treatmentSootMethodRefImpl.ClassResolutionFailedException| Modifier and Type | Field and Description |
|---|---|
static String |
METHODHANDLE_SIGNATURE |
static String |
POLYMORPHIC_SIGNATURE |
static String |
VARHANDLE_SIGNATURE |
parameterTypes| Constructor and Description |
|---|
PolymorphicMethodRef(SootClass declaringClass,
String name,
List<Type> parameterTypes,
Type returnType,
boolean isStatic)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
handlesClass(SootClass declaringClass)
Check if the declaring class "has the rights" to declare polymorphic methods
http://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.12.4.4 |
static boolean |
handlesClass(String declaringClassName) |
SootMethod |
resolve()
Resolves this method call, i.e., finds the method to which this reference points.
|
declaringClass, equals, getDeclaringClass, getName, getParameterType, getParameterTypes, getReturnType, getSignature, getSubSignature, hashCode, isStatic, name, parameterType, parameterTypes, returnType, toString, tryResolve, tryResolveclone, finalize, getClass, notify, notifyAll, wait, wait, waitisConstructorpublic static String METHODHANDLE_SIGNATURE
public static String VARHANDLE_SIGNATURE
public static String POLYMORPHIC_SIGNATURE
public PolymorphicMethodRef(SootClass declaringClass, String name, List<Type> parameterTypes, Type returnType, boolean isStatic)
declaringClass - the declaring class. Must not be nullname - the method name. Must not be nullparameterTypes - the types of parameters. May be nullreturnType - the type of return value. Must not be nullisStatic - the static modifier valueIllegalArgumentException - is thrown when declaringClass, or name, or returnType is nullpublic static boolean handlesClass(SootClass declaringClass)
http://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.12.4.4declaringClass - the class to checkpublic static boolean handlesClass(String declaringClassName)
public SootMethod resolve()
SootMethodRefresolve in interface SootMethodRefresolve in class SootMethodRefImplCopyright © 2020 Soot OSS. All rights reserved.