假设我有
void setup() {
var call = new DirectTransactCall();
call.setRequestId("3fa85f64-5711-4562-b3fc-2c963f61afa6");
expected = call;
}
我要求Intellij 2023.2.2内联调用变量
void setup() {
new DirectTransactCall().setRequestId("3fa85f64-5711-4562-b3fc-2c963f61afa6");
expected = new DirectTransactCall();
}
哪里
@Override
public void setRequestId(String id) {
this.requestId = id;
}
为什么新代码生成2个对象而不是1个,为什么没有为分配给expected的对象设置requestId?
我的假设是,内联一个变量不应该改变代码的行为。
更新
我预计
void setup() {
expected = new DirectTransactCall();
expected.setRequestId("3fa85f64-5711-4562-b3fc-2c963f61afa6")
}
expected
示例变量(不是final)引用的DirectTransactCall
对象与前面一样正确设置了requestId。
1条答案
按热度按时间ma8fv8wu1#
这正是它应该做的这里的解决方案很简单,就是不内联变量。我不知道你还能期待什么。