有没有办法告诉Java或Android中的编译器不要删除代码中的某些语句 - 这些语句用于在使用后清理变量以防止ram中的任何数据残留? 会创建一个虚拟方法来解决这个问题??
这些语句基本上将变量设置为基于类型的初始值。
提前致谢!
答案 0 :(得分:0)
我在一个奇怪的假设下回答,你有充分的理由相信代码即使已经死了也仍然有用。
将值false
存储在编译器无法理解的模糊格式中。然后,使用您的混淆值有条件地分支到该代码。编译器不会知道它已经死了,所以它不会被删除。
我将使用一个文件作为我的例子,但它可能不是最有效的方法。假设编译器认为是死代码的代码位于名为myCode()
的函数中。假设fin
正在从仅包含false
后跟EOF
if(Boolean.parseBoolean(fin.next()))
myCode();
答案 1 :(得分:0)
您描述的代码不是死代码。 死代码是永远不会执行的代码。 这是一个例子:
private int secretSchmarr;
public boolean blammo()
{
boolean returnValue;
secretSchmarr = calculateSecretValue();
returnValue = useSecretValue(secretSchmarr);
secretSchmarr = 99; // this is not dead code.
return returnValue;
secretSchmarr = 98; // This is dead code because it can never execute.
}