5 つの内部文字列変数を持つオブジェクトがありますが、そのうちの 3 つはオプションです。可能な組み合わせごとにコンストラクターを作成するか、一般的なコンストラクターを呼び出して空の文字列を渡すことができます。後者のケースは私にとって興味深いものです。コンストラクターを呼び出すときに次のようなことができれば:
String a = "Mandatory";
...
String e = "" + getVariableE(); //getVariableX() could return null,
//then it would be "".
//This is a "long" fetch statement.
new objectA(a, b, c, d, e);
別のオプション:
String d = "";
String e = "";
if(getVariableD!=null) //Remember pretty long fetch statement (ugly looking)
d = getVariableD();
if(getVariableE!=null)
e = getVariableE();
new objectA(a, b, c, d, e);
複数のifステートメントを使用せずに複数のコンストラクターを使用する方法はありません。
new objectA(a, b, c);
new objectA(a, b, c, d)
コンストラクターはここでは要因ではないかもしれませんが、行が "" または何かに設定される方法だけです。それにもかかわらず、何かを見逃した場合に備えて残しました。
これは単純な objectA クラスです
public class objectA {
String a; //Needed
String b; //Needed
String c; //Optional
String d; //Optional
String e; //Optional
/*
* Possible constructor
*/
void object(String a, String b, String c, String d, String e) {
this.a = a;
...
this.e = e;
}
注: getVariableX() は XML ファイルから属性を取得するため、強制的に文字列を含めることができますが、これは適切ではないと思います。XML ファイルに柔軟性を持たせてください。