Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 返回所有对象getter方法的toString_Oop_Coldfusion_Tostring_Object To String - Fatal编程技术网

Oop 返回所有对象getter方法的toString

Oop 返回所有对象getter方法的toString,oop,coldfusion,tostring,object-to-string,Oop,Coldfusion,Tostring,Object To String,我正在使用ColdFusion,但我想知道其他语言如何处理这个问题 是否有更好的方法返回所有对象变量(getter),而无需在对象上编写大量的toString()方法 variables.oCity = createObject("component", "_lbr._core._locations.city").init(); variables.oCity.setName(request.parameters.sCityName); variables.oCity.setCountryID

我正在使用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=“阿根廷”,CountryID=32,CityID=44


我的心告诉我这不太可能。

这取决于如何在对象中存储变量。我通常将所有变量存储在
variables.instance
结构中。然后我创建一个
get()
,它只返回
变量。实例
结构:

public struct function get(){
    return Duplicate(variables.instance);
}

这取决于如何在对象中存储变量。我通常将所有变量存储在
variables.instance
结构中。然后我创建一个
get()
,它只返回
变量。实例
结构:

public struct function get(){
    return Duplicate(variables.instance);
}

如果您在CF9+中使用
cfproperty
,并且
accessor=true
或者
persistent=true
,那么如果您在CF9+中使用
cfproperty
,并且
accessor=true
或者
persistent=true
,则cfc转储将返回所有属性,而不返回
getter=false

,转储cfc将返回所有属性,但不返回
getter=false

TBH不完全确定您在此处的目标是什么,您是否能够详细说明?TBH不完全确定您在此处的目标是什么,您是否能够详细说明?请简要说明一下。结构是通过引用传递的,因此如果不希望对结构的更改自动更改对象的实例变量(通常是不需要的),请将其包装在重复调用中。。。返回重复的(variables.instance)。只需简单说明一下。结构是通过引用传递的,因此如果不希望对结构的更改自动更改对象的实例变量(通常是不需要的),请将其包装在重复调用中。。。返回重复(variables.instance)。