我正在编写一个路径分析工具,并且我使用 jdt Astparser 来修改源代码如果我想在每个原始行之后添加一些代码并让它们成为原子操作并且不改变源代码的行为。就像这样:原始源代码:
int a = 0;
int b = 0;
a = b;
操纵后
synchronized (lock) {
int a = 0; //original code
//my code
//....
//end
}
synchronized (lock) {
int b = 0; //original code
//my code
//....
//end
}
synchronized (lock) {
a = b; //original code
//my code
//....
//end
}
但它改变了变量范围,变量 a 和 b 不再是全局的,代码无法编译。
有没有什么方法可以结合变量声明和我之后插入的代码,让它们成为原子操作并且不改变变量范围?
...对不起我的英语:)