在一行中设置另一个 属性 后返回一个对象

Returning an Object after setting another property in a single line

有什么方法可以在方法中将下面的代码写在一行中,代码没有问题,只是好奇

public MyObject getObj(String name){
  MyObj myObj = PoolInstance.get(name);
  myObj.setFound(true);
  return myObj;
}

出于某种原因,我无法修改 PoolInstance。

您可以将逻辑封装在 setter 中,即 returns 对象的实例本身:

class MyObject {

    private boolean found;

    public MyObject withFound(boolean isFound) {
        this.found = isFound;
        return this;
    }
}

客户代码:

public MyObject getObj(String name){
   return PoolInstance.get(name).withFound(true);
}

还可以考虑使用 GoF Builder 设计模式以获得更惯用和更灵活的代码:Builder pattern example with explanation

简答否,

原因:

第一直觉是

return PoolInstance.get(name).setFound(true); 

但这 正确,因为 setFound 不 return MyObj。

虽然可读性不佳,但流是可能的。看起来像:

public MyObject getObj(String name){
    return Stream.of(PoolInstance.get(name)).peek(o -> o.setFound(true)).findFirst().get();
}