mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
(cherry picked from commit bbe83739e3db7cd0b7a4b8842b6e5c1cbb8d1f32) IJ-CR-161068 GitOrigin-RevId: a25b07b6d494e07c5bc018f5a6922b9bb4ad7978
69 lines
2.6 KiB
Plaintext
69 lines
2.6 KiB
Plaintext
call text: Test.invoke();
|
|
class:
|
|
public class GeneratedEvaluationClass {
|
|
static void invoke() {
|
|
callApply1(null, () -> callMethod1(null));
|
|
}
|
|
|
|
public static void callMethod1(Object object) {
|
|
try {
|
|
Class<?> klass = Class.forName("WithReflectionAccess");
|
|
java.lang.reflect.Method member = null;
|
|
int interfaceNumber = -1;
|
|
Class<?>[] interfaces = null;
|
|
while (member == null) {
|
|
try {
|
|
member = klass.getDeclaredMethod("method");
|
|
} catch (ReflectiveOperationException e) {
|
|
if (interfaceNumber == -1) {
|
|
interfaces = klass.getInterfaces();
|
|
interfaceNumber = 0;
|
|
}
|
|
if (interfaceNumber < interfaces.length) {
|
|
klass = interfaces[interfaceNumber];
|
|
interfaceNumber += 1;
|
|
} else {
|
|
klass = klass.getSuperclass();
|
|
if (klass == null) throw e;
|
|
interfaceNumber = -1;
|
|
}
|
|
}
|
|
}
|
|
member.setAccessible(true);
|
|
member.invoke(object);
|
|
} catch (ReflectiveOperationException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
public static void callApply1(Object object, Runnable p0) {
|
|
try {
|
|
Class<?> klass = Class.forName("WithReflectionAccess");
|
|
java.lang.reflect.Method member = null;
|
|
int interfaceNumber = -1;
|
|
Class<?>[] interfaces = null;
|
|
while (member == null) {
|
|
try {
|
|
member = klass.getDeclaredMethod("apply", Class.forName("java.lang.Runnable"));
|
|
} catch (ReflectiveOperationException e) {
|
|
if (interfaceNumber == -1) {
|
|
interfaces = klass.getInterfaces();
|
|
interfaceNumber = 0;
|
|
}
|
|
if (interfaceNumber < interfaces.length) {
|
|
klass = interfaces[interfaceNumber];
|
|
interfaceNumber += 1;
|
|
} else {
|
|
klass = klass.getSuperclass();
|
|
if (klass == null) throw e;
|
|
interfaceNumber = -1;
|
|
}
|
|
}
|
|
}
|
|
member.setAccessible(true);
|
|
member.invoke(object, p0);
|
|
} catch (ReflectiveOperationException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
} |