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

标签 java jakarta-ee

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

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

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

最佳答案

您可以将逻辑封装在返回对象实例本身的 setter 中:

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

关于java - 在一行中设置另一个属性后返回一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55405259/

相关文章:

java - 根据特定条件对数组进行排序

java - .Hsql异常 : user lacks privilege or object not found

java - 将属性文件合并到现有 Runabble jar 不起作用

Java EE @Schedule 和服务器关闭

java - Swing 问题 : drawing rectangles over the pdf image and keep their size and positions consistent when zooming in and out

Java日期差异以毫秒为单位

java - 捕获线程外部的异常

java - Tomcat catalina.log 捕获许多异常

java - Drools 决策表中的无限循环

java - Checkstyle "Method Not Designed For Extension"错误被错误地发出?