Maison >Java >javaDidacticiel >Devriez-vous utiliser le chargeur de classe de contexte de thread (TCCL) en Java ?

Devriez-vous utiliser le chargeur de classe de contexte de thread (TCCL) en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 19:57:19239parcourir

Should You Use the Thread Context Class Loader (TCCL) in Java?

Comprendre le rôle des chargeurs de classe

Lors du chargement de classes en Java, le runtime s'appuie sur les chargeurs de classe pour déterminer quelle version d'une classe utiliser instancier. Chaque thread d'une application peut avoir son propre chargeur de classe contextuelle (TCCL) qui remplace le chargeur de classe par défaut.

TCCL vs. Normal Classloader

Dans les situations où le TCCL et le chargeur de classe normal (NCL) de la classe diffèrent, le TCCL est prioritaire. Cela signifie que les classes chargées à l'aide du TCCL seront utilisées à la place de celles chargées à l'aide du NCL.

Quand utiliser TCCL

Cependant, le document déconseille fortement d'utiliser le TCCL. Au lieu de cela, les applications doivent utiliser NCL pour charger les classes. L'existence du TCCL est principalement due à un défaut de conception dans l'API ObjectInputStream, qui manque d'un paramètre pour spécifier le chargeur de classe.

Bonnes pratiques

Pour éviter les problèmes de chargement de classe , utilisez toujours le NCL pour charger les classes (getClass().getClassLoader()). Si une API nécessite un paramètre de chargeur de classe, fournissez-le avec le NCL. Dans les cas où le NCL n'est pas disponible, envisagez de modifier l'API pour accepter un paramètre de chargeur de classe ou de définir le TCCL sur le NCL avant d'utiliser l'API.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn