Die Rolle von Klassenladern verstehen
Beim Laden von Klassen in Java verlässt sich die Laufzeit auf Klassenlader, um zu bestimmen, welche Version einer Klasse verwendet werden soll instanziieren. Jeder Thread in einer Anwendung kann über einen eigenen Thread-Kontextklassenlader (TCCL) verfügen, der den Standardklassenlader überschreibt.
TCCL vs. normaler Klassenlader
In Situationen, in denen der TCCL und der normale Klassenlader (NCL) der Klasse unterscheiden sich, der TCCL hat Vorrang. Dies bedeutet, dass mit TCCL geladene Klassen anstelle von mit NCL geladenen Klassen verwendet werden.
Wann TCCL verwendet werden sollte
Das Dokument rät jedoch dringend von der Verwendung von ab TCCL. Stattdessen sollten Anwendungen die NCL zum Laden von Klassen verwenden. Die Existenz der TCCL ist in erster Linie auf einen Designfehler in der ObjectInputStream-API zurückzuführen, der ein Parameter zum Angeben des Klassenladers fehlt.
Best Practices
Um Probleme beim Laden von Klassen zu vermeiden Verwenden Sie zum Laden von Klassen immer die NCL (getClass().getClassLoader()). Wenn eine API einen Klassenladeparameter erfordert, stellen Sie ihn mit der NCL bereit. In Fällen, in denen die NCL nicht verfügbar ist, sollten Sie erwägen, die API so zu ändern, dass sie einen Klassenladeparameter akzeptiert, oder die TCCL auf die NCL zu setzen, bevor Sie die API verwenden.
Das obige ist der detaillierte Inhalt vonSollten Sie den Thread Context Class Loader (TCCL) in Java verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!