2016-11-19 36 views
0

我有3个字段(名称,密码,电子邮件)。我想检查它们是否有效。我写了以下内容同时进行字段验证

public boolean isValidInput() { 
    if(name.isValid()){ 
     return false; 
     } 
     if(password.isInValid()){ 
     return false; 
     } 
     if(email.isInValid()){ 
     return false; 
     } 
     return true; 
    } 

所以这会给我一个无效的。但是如果我想同时显示所有残疾人该怎么办?

+0

plz看看编辑好的代码 –

+0

当你希望有人花时间回答你的问题时,你也应该花时间好好问问题。例如你的编辑:为什么'name'仍然被检查为有效,而不是像其他人一样无效?没有意义。 – Tom

回答

1

有多种方式可以处理这个问题。但他们每个人都需要更改呼叫者来处理这些情况。

  1. 创建接受消息列表的自定义异常。每次验证失败时,将错误添加到列表中,如果列表不为空,则在isValidInput()的末尾添加错误列表。
  2. 从上面返回错误列表,而不是抛出异常。
  3. 返回布尔变量的列表,列表中的每个索引将表示验证的状态(名称,电子邮件等)
  4. 有所有存在的字段的枚举。返回失败的枚举列表。空列表表示没有发生错误。

还有很多其他方法可以解决这个问题。这一切都取决于最适合你的是什么。
我会说,尝试其中的一些,看看它是怎么回事。

+0

EnumSet应该是首选。 – brummfondel

0

你可以简单地从函数返回一个整数这样

public int isValidInput() { 
    if(name.isValid()){ 
     return 1; 
     } 
     if(password.isInValid()){ 
     return 2; 
     } 
     if(email.isInValid()){ 
     return 3; 
     } 
     return 0; 
    } 

然后检查整数找出哪一个失败!

当然要用错误的名称来定义static finalint以使代码更具可读性和健壮性。

相关问题