私はブール値型のすべての8つのパラメータ(p1、p2、...)を持つクラスを持っているので、のを持つセッターメソッドを作成することが可能かどうかは疑問でした。オブジェクトの可変メンバ(設定するp1、p2、...のいずれかを決定する)との値を使用して、8つのセッターを作成するのではなく)。それは、これらのP1〜P8のいずれかのuniverzalセッターを作成することが可能である方法Univerzalクラスsetter - Java
public class SomeClass{
private boolean p1;
private boolean p2;
private boolean p3;
private boolean p4;
private boolean p5;
private boolean p6;
private boolean p7;
private boolean p8;
}
:
は、我々はクラスを以下しているとしましょうか?あなたは、一般的にそれが機能的に言ってint型
void setP(Integer i, Boolean value) {
BeanUtils.setProperty(this, "p"+i.toString(), value);
}
を使用してapache commons
void setP(String name, Boolean value) {
BeanUtils.setProperty(this, name, value);
}
やからBeanUtils
を使用していますが、両方以来、それは完全に安全ではありません知ることができる
public void setP(SomeClass.param p, boolean value)
Reflection APIを使用することもできますが、そのようなことをすることを強くお勧めします。フィールドごとにセッターを作成するのに間違いはありません。 –
BitSetの使用を検討しましたか? http://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html。一緒にバンドルするのは良い考えではないかもしれませんが、p1〜p8が本当に別々のパラメータであるべきでない場合は、ゲッター/セッターの1つが意味をなさないかもしれません。 – Mic
おそらくクラスが悪い設計です。すべてが似たような現実的な性質を持っているなら、多分配列が良いでしょうか? –