检查对象是否为无效以进行映射的最佳方法



我正在尝试将一个对象映射到另一个对象,并且我在确定最佳练习是什么是检查对象是否要映射的对象是null

1-

public DTOIntIdentityDocument mapIdentityDocument(Identitydocument in) {
        if (in == null) {
            return null;
        } else {
            DTOIntIdentityDocument out = new DTOIntIdentityDocument();
            out.setDocumentType(this.mapDocumentTypeÇ(in.getDocumenttype()));
            out.setDocumentNumber(in.getDocumentnumber());
            return out;
        }
    }

2 -

public DTOIntIdentityDocument mapIdentityDocument(Identitydocument in) {
        DTOIntIdentityDocument out = null;
        if (in != null) {
            out = new DTOIntIdentityDocument();
            out.setDocumentType(this.mapDocumentTypeÇ(in.getDocumenttype()));
            out.setDocumentNumber(in.getDocumentnumber());
        }
        return out;
    }

¿关于这样做的最佳实践是什么?

显然,这归结为样式,因此没有硬规则告诉我们哪个版本是"最佳"。如果您的团队编写的所有代码遵循方案1,那是最适合您的代码。

话虽如此,我更喜欢一个简单的初始守护

 if (in == null) 
     return null;
DTOIntIdentityDocument out = new DTOIntIdentityDocument();
out.setDocumentType(this.mapDocumentTypeÇ(in.getDocumenttype()));
out.setDocumentNumber(in.getDocumentnumber());
return out;

您想编写易于阅读和理解的代码。您的版本具有该版本 else 块...实际上不需要在自己的块中,并带有其他凹痕。另一方面,您的第二个摘要使用三个不同的抽象层:一个简单的分配,if块,简单的回报。这绝对比选项1或我上面使用的修改代码"更复杂"。但是请注意:选项2也具有其优势。如果要/必须跟踪/记录该方法的结果,则使用选项2,则在返回语句之前立即添加一个trace(out)

和记录:当您进行"硬核"干净代码时,该方法最终会读取:

if (in == null) 
     return null;
return createDocumentFrom(in);

或类似的东西。含义:您将实际创建并将结果对象配置为自己的私有方法的代码。而且该方法不必担心传递的零参数!

最后:理想解决方案无需担心无效参数。仅仅因为您避免了像瘟疫一样的空。并非总是可能的,但总是可取的!

if(in != null) 
   mapIdentityDocument(in)
public DTOIntIdentityDocument mapIdentityDocument(Identitydocument in) {
        DTOIntIdentityDocument out = new DTOIntIdentityDocument();
        out.setDocumentType(this.mapDocumentTypeÇ(in.getDocumenttype()));
        out.setDocumentNumber(in.getDocumentnumber());
        return out;
 }

相关内容

  • 没有找到相关文章