У меня есть старое приложение с классом бобов, как показано ниже.И я не могу изменить оригинальный код.В следующем примере может быть перехвачен доступ к полю val и изменено значение.Я хотел бы добавить еще одно поле во время выполнения как public String valOriginal.Сохраните фактическое значение в valOriginal, а измененное значение - в val.
. Можно ли это сделать с помощью инструментов во время выполнения?
package com.test;
public class A{
public String val;
}
main(){
A a = new A();
a.val = "test"; //Want to intercept this call and change the value
System.out.println(a.val); // This should return "modified test"
}
Перед инструментарием
package com.test;
public class A{
public String val;
}
После контрольно-измерительных приборов
package com.test;
public class A{
public String val; //modified test
public String valOrginal; //test
}