Files
openide/java/java-tests/testData/refactoring/extractMethodObject4Debugger/outs/twiceAccessToTheSameField.out
Vitaliy.Bibaev 2cd49bb33b Update testdata after enabling extraction of generated class in compiling evaluator
GitOrigin-RevId: 1c56d0cd598b659a4269003a6f0604f2c1b8f4e5
2019-07-26 11:02:46 +03:00

75 lines
2.8 KiB
Plaintext

call text: int result = new Test(instance).invoke();
class:
public class GeneratedEvaluationClass {
private Object instance;
public GeneratedEvaluationClass(Object instance) {
this.instance = instance;
}
public static int accessToFieldField1(Object object, Object value) {
try {
Class<?> klass = Class.forName("WithReflectionAccess");
java.lang.reflect.Field member = null;
int interfaceNumber = -1;
Class<?>[] interfaces = null;
while (member == null) {
try {
member = klass.getDeclaredField("field");
} 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);
return (int) member.get(object);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
}
public static int accessToFieldField2(Object object, Object value) {
try {
Class<?> klass = Class.forName("WithReflectionAccess");
java.lang.reflect.Field member = null;
int interfaceNumber = -1;
Class<?>[] interfaces = null;
while (member == null) {
try {
member = klass.getDeclaredField("field");
} 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);
return (int) member.get(object);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
}
public int invoke() {
return accessToFieldField1(instance, null) + accessToFieldField2(instance, null);
}
}