クラス ローダーの役割を理解する
Java でクラスをロードする場合、ランタイムはクラス ローダーに依存してクラスのどのバージョンをロードするかを決定します。インスタンス化します。アプリケーションの各スレッドは、デフォルトのクラス ローダーをオーバーライドする独自のスレッドのコンテキスト クラス ローダー (TCCL) を持つことができます。
TCCL と通常のクラスローダー
TCCL とクラスの通常のクラス ローダー (NCL) は異なります。TCCL が優先されます。これは、TCCL を使用してロードされたクラスが、NCL を使用してロードされたクラスの代わりに使用されることを意味します。
TCCL を使用する場合
ただし、この文書では、TCCL を使用しないことを強く推奨しています。 TCCL。代わりに、アプリケーションは NCL を使用してクラスをロードする必要があります。 TCCL の存在は主に、クラス ローダーを指定するためのパラメーターが欠落している ObjectInputStream API の設計上の欠陥が原因です。
ベスト プラクティス
クラス ロードの問題を回避するには、クラスをロードするには常に NCL を使用します (getClass().getClassLoader())。 API にクラス ローダー パラメーターが必要な場合は、NCL を使用してそれを提供します。 NCL が使用できない場合は、クラス ローダー パラメーターを受け入れるように API を変更するか、API を使用する前に TCCL を NCL に設定することを検討してください。
以上がJava でスレッド コンテキスト クラス ローダー (TCCL) を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。