Java Introspect аспект свойства бина - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть старое приложение с классом бобов, как показано ниже.И я не могу изменить оригинальный код.В следующем примере может быть перехвачен доступ к полю 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
}
...