我应该避免在 java 函数中返回 null 吗?

Ale*_*sco 4 java null

我没有找到适合我的问题的解决方案。据我所知,正如《Clean Code》一书中所说,返回 null 并不是编写干净代码的好方法。然而,对于这种做法有很多不同的看法,我不确定哪一种适合我的职能。

private EArea getSimilarExistingArea(EImportArea importedArea) {
    for (EArea existingArea : exsitingAreas) {
        EList<EPoint> importedAreaPoints = importedArea.getPoly().getPoints();
        EList<EPoint> existingAreaPoints = existingArea.getPoly().getPoints();
        for (EPoint importedAreaPoint : importedAreaPoints) {
            for (EPoint existingAreaPoint : existingAreaPoints) {
                if (importedAreaPoint.equals(existingAreaPoint))
                    return existingArea;
            }
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

如果没有现有的类似区域,我应该返回什么?

PD:为了优化我的代码,如果找到现有区域,我将通过返回来打破循环。

Din*_*inh 5

你应该看看Optional类

让你的方法返回类型Optional<EArea>并简单地返回,Optional.ofNullable(existingArea)你将不得不稍微修改你的代码,但可选的好处确实值得!