Maison >Java >javaDidacticiel >Devriez-vous utiliser le chargeur de classe de contexte de thread (TCCL) en 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!