ミッションインポッシブルのように聞こえる、クレイジーなタスクがあります。メソッドのスタックを介していくつかのデータを渡す必要がありますが、変更することはできません(最後の1つのみを変更できます)。例:
SomeData someData; //not passed in method1
obj1.method1(...);
これがobj1クラスコードです
obj1 {
someReturnClass method1(...) {
...
obj2.method2(...);
...
}
}
obj2とmethod2は、objN.methodM()に到達する前に、さらにいくつかのメソッドを呼び出します。別のスレッドで実行することもできます(したがって、ThreadLocalは役に立ちません)。このスタックをパラメーターとして渡されないmethodM内のsomeDataにアクセスする必要があります。
例外と二重実行methodMを通過させるためのいくつかの概念がありますが、見た目は醜いです。
someDataをmethodM()に渡す方法について何かアイデアはありますか?