2016-11-19 6 views
0

私は3つのフィールド(名前、パスワード、電子メール)を持っています。彼らが有効かどうかをチェックしたい。私は次のように書きましたフィールドの検証を同時に行う

これは私に無効なものを与えます。しかし、同時に私が傷病者をすべて見せたいと思ったらどうしますか?

+0

plzは編集したコード –

+0

を見ています。あなたの質問に誰かが時間を取ることを期待したら、それに適切に尋ねる時間が必要です。たとえば、あなたの編集:なぜ 'name'は有効であるかどうかチェックされ、他のものと同様に無効ではないのですか?意味がありません。 – Tom

答えて

1

これを処理する方法は複数あります。しかし、これらのケースを処理するには、発信者の変更が必要です。

  1. メッセージのリストを受け取るカスタム例外を作成します。検証が失敗するたびにリストにエラーを追加します。リストが空でない場合は、isValidInput()の末尾にエラーのリストを含む例外をスローします。
  2. 例外をスローするのではなく、上記のエラーのリストを返します。
  3. ブール型変数のリストを返します。リスト内の各インデックスは、検証のステータス(名前、電子メールなど)を表します。
  4. 存在するすべてのフィールドの列挙型を持ちます。失敗したenumのリストを返します。空のリストは、エラーが発生していないことを示します。

これを処理する方法はまだまだたくさんあります。それはすべてあなたに最適なものに依存します。
私は、それらのいくつかを試して、それがどうなるかを見てみましょう。

+0

EnumSetを推奨します。 – brummfondel

0

あなたは、単にこの

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

のような関数から整数を返し、その後、1が失敗したかを調べるために、整数をチェックできます!

static finalintをエラーの名前で定義して、コードを読みやすく堅牢にする方がよいでしょう。

関連する問題