考虑下面的Java代码行(它只是用来演示场景的伪代码):
someObject.performAction(Integer.parseInt(other.transform(123)), MessageFormat.format(input, arg, processArg(arg2), anotherValue));
当在IntelliJ IDEA中进行调试时,如果在调用someObject.performAction
之前首先看到内联调用的结果而不将它们重构为局部变量?
答案 0 :(得分:1)
你不能100%安全地做到这一点。
如果内联方法没有副作用,请选择方法调用,例如processArg(arg2)
并使用"评估表达式" (ALT-F8)。当调试器被告知继续运行代码时,不会使用此结果,因此将评估具有副作用的方法至少两次(每次使用一次"评估表达式"使用,以及一次对于真正的电话)。