0

我正在使用 ColdFusion,但我很想知道其他语言如何处理这个问题。

有没有更好的方法来返回所有对象变量(getter),而无需在对象上编写大量的 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

如果您在 CF9+ 中使用cfproperty, and accessor=trueor ,则 cfc 的转储将返回所有不带.persistent=truegetter=false

于 2012-04-19T18:20:40.953 回答