私がjava.lang.Thread
から理解できる限り、 "How to access a Runnable object by Thread?"と "Get current instance of Runnable"のようにstackoverflowに掲載されている他の質問からThread
に埋め込まれたRunnable
オブジェクトの参照を取得することはできません。スレッドに埋め込まれたRunnableを取得できないのはなぜですか?
この可能性があるシナリオは、別のクラスまたはインターフェイスで定義されたメソッドをオーバーライドしているためにシグネチャを変更できないメソッドを実装するときに役立ちます。現在Thread
に埋め込まれているタイプRunnable
です。私たちはこの方法に含まれる操作さを確保したいときは、状況でも有用である可能性
if (Thread.currentThread().getRunnable() instanceof Type1) {
// do something...
} else {
// do something else...
}
:私たちは例のために持っていた場合は
は、この方法では、我々はこのような何かを行うことができThread
クラスでgetRunnable
と呼ばれますあるスレッドだけが実行し、他のスレッドは実行しません。
Java開発者がからRunnable
インスタンスを取得することを許可しないと決めた理由があるのでしょうか、それとも通知される価値の欠如ですか?その選択肢の背後に理由がないと思うが、欠落した機能として通知する価値はない場合は、上記のシナリオではどのような戦略を使用しますか?
? –
@KirkWoll、 'null'? –
あなたの例のように 'instanceof'の結果に分岐することは、決して良い考えではありません。 – NPE