0

私は ColdFusion を使用していますが、他の言語がこれにどのように対処しているか知りたいです。

オブジェクトに大規模な toString() メソッドを記述せずに、すべてのオブジェクト変数 (ゲッター) を返すより良い方法はありますか?

variables.oCity = createObject("component", "_lbr._core._locations.city").init();

variables.oCity.setName(request.parameters.sCityName);
variables.oCity.setCountryID(request.parameters.nLocationCountryID);

if(request.parameters.nStateID eq 0){
    variables.stArgs = {};
    variables.stArgs.sState = request.parameters.sLocationCountry;
    variables.stArgs.nCheckCountryID = request.parameters.nCountryID;
    variables.oCity.setStateID = application.stObj.oLocationBusiness.getState(argumentCollection=variables.stArgs).getStateID();
} else {
    variables.oCity.setStateID = request.parameters.nStateID;
}

私のコードはそのように見えます。私が望むのは、次のように見えるさまざまな変数をすべて連結する巨大な toString を記述せずに、設定したすべてのもの (およびオブジェクトのデフォルトもすべて) を出力することです。

オブジェクト: StateID = 12、Name = "Argentina"、CountryID = 32、CityID = 44

私の心は、これはありそうもないと言っています。

4

2 に答える 2

4

これは、オブジェクト内に変数を格納する方法によって異なります。私は通常、すべての変数をvariables.instance構造体に格納します。次に、単純に構造get()を返すを作成します。variables.instance

public struct function get(){
    return Duplicate(variables.instance);
}
于 2012-04-18T12:43:33.607 に答える
1

cfproperty、およびaccessor=trueまたはpersistent=trueCF9 +を使用する場合、cfcのダンプは。なしですべてのプロパティを返しますgetter=false

于 2012-04-19T18:20:40.953 に答える