0

7つのブールフィールドを持つ「Scheduler」というクラスがあります。少なくとも1つのブールフィールドがtrueであることを確認するために、休止状態で制約を記述したいと思います。

これが「スケジューラ」クラスです。

public class Scheduler {

private String description;

@NotNull
private Boolean sMondays;

@NotNull
private Boolean sTuesdays;

@NotNull
private Boolean sWednesdays;

@NotNull
private Boolean sThursdays;

@NotNull
private Boolean sFridays;

@NotNull
private Boolean sSaturdays;

@NotNull
private Boolean sSundays;

public Scheduler() {

}
}

誰かが言及された制約を書くのを手伝ってくれませんか。

ありがとう!!!!!!!!!

4

2 に答える 2

1

プリミティブブール値の代わりにブール値を使用しているため、これは複雑であり、null ポインター例外のリスクが生じます。

ロジックを単純化するために、各フィールド宣言を変更して false に初期化します。として注釈を付けたので@NotNull、これは既存のビジネスロジックで機能すると思います。

これを行う場合、少なくとも 1 つが true であるという検証は、以下を使用して非常に簡単に達成され||ます。

public boolean validateAtLeastOneIsTrue() {
    return getsMondays() || getsTuesdays() || getsWednesdays()
    || getsThursdays() || getsFridays() || getsSaturdays()
    || getsSundays();
}
于 2011-05-25T23:27:12.780 に答える
0

作業している正確なドメインがわからない場合は、Calendarなどの一時データ型を使用することをお勧めします。これにより、現在の曜日で簡単な検索を行うことができます。また、コードがはるかに保守しやすくなります

于 2011-05-25T23:33:11.567 に答える