ドキュメントや、「スレッドでRunnableオブジェクトにアクセスする方法」や「Runnableの現在のインスタンスを取得java.lang.Thread
する」など、stackoverflowに投稿された他の質問から理解できる限り、埋め込まれたオブジェクトの参照を取得することはできません。で。Runnable
Thread
この可能性があると便利なシナリオは、別のクラスまたはインターフェイスで定義されたメソッドをオーバーライドしているためにシグネチャを変更できないメソッドを実装する場合です。Runnable
組み込みのタイプに応じて異なる操作を実行する必要があります。現在Thread
。
たとえばgetRunnable
、Thread
クラスで呼び出されるメソッドがある場合、次のようなことができます。
if (Thread.currentThread().getRunnable() instanceof Type1) {
// do something...
} else {
// do something else...
}
これは、メソッドに含まれる操作が特定のスレッドによってのみ実行され、他のスレッドによっては実行されないようにする場合にも役立ちます。
Runnable
だから私は疑問に思っていました、Java開発者がからインスタンスを取得することを許可しないことを決定した特定の理由がありますかThread
、それとも通知する価値のある不足している機能ですか?その選択の背後に理由がないと思うが、機能が不足していることを通知する価値がない場合、上記のシナリオでどのような戦略を使用しますか?