public static class Builder {
protected static final int DEFAULT_MAX_COUNT = 3;
/** count cannot be set to a value higher than this. By default, the value is {@value Builder#DEFAULT_MAX_COUNT}. */
protected int maxCount = DEFAULT_MAX_COUNT;
protected int count;
// ..some other code here
/**
* This should be greater than 0 and less than equal to {@link Builder#maxCount}. By default, {@value Builder#DEFAULT_MAX_COUNT}.
*
* @param count
* @throws IllegalArgumentException if count is less than 0 and greater than {@link Builder#maxCount}.
* @return Builder object
*/
public Builder setCount(int count) {
checkArgument(count > 0 && count < (maxCount + 1),
"count should be greater than 0 and less than " + (maxCount + 1));
this.count = count;
return this;
}
/** ... */
public Builder setMaxCount(int maxCount){
checkArgument(count > 0, "maxCount must be greater than 0");
this.maxCount = maxCount;
}
/** ... */
public int getMaxCount(int maxCount){
return this.maxCount;
}
}
IMO、セッターとゲッターをmaxCount
inに持つことは意味がなくBuilder
、代わりに定数の最大値にする必要があります(DEFAULT_MAX_COUNT
)。
プログラムの実行中にドキュメントが変更されないため、javadoc は動的変数の値を表示できません。javadoc は単なるテキストであり、実行中のプログラムがないため、値を更新できません。これは、目覚まし時計 (プログラム) に付属するマニュアル (javadoc) と考えてください。マニュアルには、あらゆる種類の便利な機能や時計の使い方が記載されていますが、アラームが何に設定されているかはわかりません (変更されることはないため)。{@value ..}
時計のシリアルナンバーのようなものです。時計を「梱包」している人は、実際のシリアル番号を知っており、.
ps。これがあなたが実際に探しているものに沿っていることを完全に願っています:
public static class Builder {
protected static final int MAX_MAX_COUNT = 3;
/** By default, the value is {@value Builder#MAX_MAX_COUNT}. */
protected int maxCount = MAX_MAX_COUNT;
// ..some other code here
/**
* This should be greater than 0 and less than equal to {@value Builder#MAX_MAX_COUNT}.
*
* @param maxCount
* @throws IllegalArgumentException if maxCount is less than 0 and greater than {@link Builder#MAX_MAX_COUNT}.
* @return Builder object
*/
public Builder setMaxCount(int maxCount) {
checkArgument(maxCount > 0 && maxCount < (MAX_MAX_COUNT + 1),
"count should be greater than 0 and less than " + (MAX_MAX_COUNT + 1));
this.maxCount = maxCount;
return this;
}
}