2012-04-18 10 views
0

私はColdFusionを使用していますが、他の言語がこの問題にどのように対処しているかを知ることに興味があります。toStringすべてのオブジェクトを取得する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

私の心はこれが起こりそうもないと伝えます。

+1

あなたがここで達成しようとしていることを完全にはっきりとは分かっていませんが、あなたは全く手がけていますか? –

答えて

4

これは、オブジェクト内に変数をどのように格納するかによって異なります。私は一般にすべての変数をvariables.instance構造体に格納します。あなたがcfproperty、およびCF9 +でaccessor=truepersistent=trueを使用する場合は、CFCのダンプがgetter=falseせずにすべてのプロパティを返します

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

これについて簡単にメモします。構造体は参照によって渡されます。したがって、構造体に変更を加えずにオブジェクトのインスタンス変数を自動的に変更したい場合(通常は不要です)、重複呼び出しでラップします... duplicate(variables.instance)を返します。 –

+0

もちろん、コード例を更新してください。 –

1

:私は、単にvariables.instance構造体を返しget()を作成します。

関連する問題