代码之家  ›  专栏  ›  技术社区  ›  KaderLAB

初始化DTO中的文件

  •  6
  • KaderLAB  · 技术社区  · 7 年前

    在这样的DTO中,只有ArrayList类型才能避免NullPointerException

    public class fooDto {
        private SomeClasse someClasse = new SomeClasse();
        private ArrayList<Bar> bars = new ArrayList();
    }
    

    我们应该做他的吗?这是一种好的做法吗

    3 回复  |  直到 7 年前
        1
  •  5
  •   pokemzok    7 年前

    列表 ,肯定是的(尝试将项目放入空列表是很常见的)。但是关于 someClasse公司 是可选字段,为什么要初始化?另一方面,如果它不应该为null,那么最好抛出这个异常。毕竟,很容易找到它的原因,否则你会与分析叠加,它实际上是由某个东西设置为空值,还是因为某些错误而为空?

    总之,在我看来,不初始化它可以获得更多。你总是需要一些 preconditions 轻松检查空值并抛出更文明的异常。

        2
  •  1
  •   Albert Bos    7 年前

    Collection 初始化它是有意义的。当涉及到像您的 SomeClass 示例:这可能因情况而异。

    能够 使用空对象设计模式,这是一种应避免具有真实对象的模式 null

        3
  •  0
  •   Bohdan Levchenko    7 年前

    当您必须手动将数据从域对象复制到DTO时,这样做是有意义的。

    否则,如果你正在使用一个库,比如 ModelMapper beanutils 或者类似的东西,我觉得有点多余,因为这样的工具可以处理空值和所有这类东西。