1

EclipseでJavaコードをデバッグするときに、変数名の1つをクリックすると、そのオブジェクトが出力されます。オブジェクトのtoString()メソッドを使用してオブジェクトを出力します。いくつかのtoStringメソッドに副作用があり、そのタイプの変数をクリックした場合、そのtoStringの副作用が適用されますか(そして間違いなくすべてを台無しにします)?

4

3 に答える 3

3

あなたはあなた自身の質問に答えたと思います。を呼び出すときはいつでもtoString、デバッグまたはその他の方法で、すべての副作用が発生します。これが、toStringの副作用を回避する必要がある理由です。

于 2011-03-31T01:52:46.187 に答える
2

私はそう想像します。これをテストするには、クラスのtoStringメソッドを記述して、ファイルへの出力を生成し(または、デバッガーの外部で監視できる他の処理を実行し)、デバッガーにそのタイプの変数を表示させます。

于 2011-03-31T01:52:35.483 に答える
2

JVMは、副作用を「適用」するかどうかを選択できません。toString()メソッドを使用して文字列表現を取得する場合は、それを実行する必要があり、副作用を実行しない方法はありません。結局のところ、副作用は文字列表現の計算方法に影響を与える可能性があります。

于 2011-03-31T07:01:52.493 に答える