如何从我的验证器类中消除所有“if”语句

塞巴斯蒂安·格里戈尔

有没有办法从这个类中消除所有“if”语句并仍然保持完全相同的功能?

到目前为止,我通过创建 2 个额外的函数来简化代码:isNameValid 和 isPhoneValid,但我需要一种方法来摆脱所有“if”语句。

public class ClientValidator implements Validator<Client> {
    @Override
    public void validate(Client entity) throws ValidatorException {
        if(!isNameValid(entity.getName())){
            throw new ClientException("Invalid name!");
        }
        if(!isPhoneValid(entity.getPhone())){
            throw new ClientException("Invalid phone number!");
        }
    }

    private boolean isNameValid(String name) {
        return name.length() > 1 && name.length() < 100;
    }

    private boolean isPhoneValid(String phone) {
        try {
            Long.parseLong(phone);
        } catch (NumberFormatException e) {
            return false;
        }
        return true;
    }
}
YCF_L

那这个呢 :

@Override
public void validate(String entity) throws ClientException {
    String message = !isNameValid(entity.getName()) ? "Invalid name!"
            : !isPhoneValid(entity.getPhone()) ? "Invalid phone number!" : "";
    Stream.of(message).filter(m -> m.isEmpty()).findAny()
            .orElseThrow(() -> new ClientException (message));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何消除所有这些if-else

如何验证我的Person类中的输入

如何将所有 If 语句仅放在一个类或函数中?

如何获取PHP类文件中声明的所有use语句

如何在不对所有模型进行验证的情况下重用模型中的类

如何使用jQuery中的类选择器获取jQuery中元素的所有类?

如何跳过Rails中的所有验证?

如何更正我的ORM语句以显示未与Django中的用户关联的所有朋友?

如何停止在tomcat服务器中记录所有调试语句

我如何仅将特殊字符“<”、“>”、“{”、“}”列入黑名单并允许 Joi JS 验证器中的所有其他字符

我是否需要为log4j中的所有类创建附加器?

如何在我的所有类中应用元类而不在类声明中对其进行硬编码

我们如何劫持DLL以锁定Windows中的所有目录以进行验证

在javascript类中,我如何super()所有现有参数?

如何修复验证器,使其无法激发ListView中的所有项目

Visual Studio代码语言服务器-如何验证工作区中的所有文件

如何在表单中为所有输入文件制作laravel验证器

如何从HTML文本中获取具有指定选择器的所有类

如何消除所有出现的标签?

我们如何将列表中的所有项目从模型类存储库传递到控制器,然后进行查看?

我如何才能让python计数器在具有多个if语句的函数中工作?

链接量角器中的所有语句

如何打开浏览器以及我在浏览器中添加的所有插件

如何在CQL中验证所有行是否已成功从CSV复制到Cassandra表?*** SELECT语句未返回所有结果

如何从列表中的向量中消除存在于vecor中的元素的所有元素

如何在选择查询(MySQL)中仅消除连续重复项而不消除所有重复项?

如何在Scala类中消除var?

我如何从Mono中的c ++获取某个类中所有方法的列表?

我如何在jdk9中获取所有sun.font类