2017-03-01 9 views
0

私はブール型の2つのプロパティを持つクラスを持っています。条件は同じであってはなりません。つまり、あるプロパティが偽の値を保持し、真の値と副versa.Iは、私が上記scenario.Is言っ実装することができますvalidations.Howためnet.sf.ovalの依存関係を使用していておかげで可能同じ値を保持するPOJOクラスのプロパティを制限します

私のクラス

public class Modality { 

    private boolean fp; 
    private boolean otp; 

    public boolean isFp() { 
     return fp; 
    } 

    public void setFp(boolean fp) { 
     this.fp = fp; 
    } 

    public boolean isOtp() { 
     return otp; 
    } 

    public void setOtp(boolean otp) { 
     this.otp = otp; 
    } 

    @Override 
    public String toString() { 
     return "Modality [fp=" + fp + ", otp=" + otp + "]"; 
    } 

} 
+0

この場合、2つのフィールドを持つ点は何ですか?あなたはゲッターを持っていて、同じフィールドで遊ぶことができませんでしたか? –

+0

@ローランG私はあなたに同意する、私たちはフィールドだけを持つことができます。しかし、私は2つのフィールドを使用するように指示されて、次に何をするのですか? –

+0

ハム、楕円形の運動。 @ JureKolenkoが言っているように、 '@ NotEqualField'を使って、不変式を尊重できるコンストラクタを追加します。 –

答えて

0

これを試してみてください:?

public void setOtp(boolean otp) { 
    this.otp = otp; 
    this.fp = !otp; 
} 

public void setFp(boolean fp) { 
    this.fp = fp; 
    this.otp = !fp; 
} 
+0

あなたの応答に感謝しますが、クライアントがjsonで同じ値を送信するのを制限する必要があります。私は何も変更しません –

0

@NotEqualToField注釈を使用しますか?

public class Modality { 

    private boolean fp; 
    @NotEqualToField("fp") 
    private boolean otp; 

} 
+0

しかし、私たちがモダリティオブジェクトを作成するとき、このクラスのプロパティはfalseであるデフォルト値で初期化されます。そして再びそれはプロパティと同じ値になります。 –

関連する問題