2011-07-11 4 views

答えて

49

プロパティを処理する代わりに、String型のBeanを宣言することで別の方法を試すこともできます。

この方法:

<bean class="com.example.Ex"> 
    <property name="aString" ref="str" /> 
</bean> 

そして、あなたはBで宣言し、Cはこのよう "STR" 参照コンテキスト:

B

<bean id="str" class="java.lang.String"> 
    <constructor-arg value="string_1"/> 
</bean> 

C

<bean id="str" class="java.lang.String"> 
    <constructor-arg value="string_2"/> 
</bean> 
+1

これは本当です... StringクラスはStringを持つコンストラクタを持っています...私はそれを考えていません。ありがとうございます! – rascio

+0

どちらが練習の最善の方法ですか?なぜ? –

-7

これも方法の1つです。完全のために

<bean id="str" class="com.example.Ex"> 
<constructor-arg type="java.lang.String" value="INDIA"/> 

+1

これは、文脈BとCが文脈Aで決定された文字列に対して異なる値を持つ問題を解決するのに役立たない。 – Kieran

+0

さらに、文字列を引数として受け入れるクラスExのコンストラクタがあることを暗示する。 –

4

ここに文字列を作成するための別の方法:

の代わりに、不必要に作成する新しいオブジェクトを強制的にStringコンストラクタを呼び出し、のvalueOfを使用するために良いアイデアかもしれここでは、「何もしない」コンストラクタとして役立つことができる方法:

<bean id="str" class="java.lang.String" factory-method="valueOf"> 
    <constructor-arg value="string_1"/> 
</bean> 

しかし、これは追加のXML attriを解析するオーバーヘッドとして学術的のみですストリングの作成を引き起こすbuteは、コンストラクターの代わりにvalueOfを呼び出すことによるパフォーマンスの向上よりも大きい場合があります。

関連する問題