Hay 10 millones de artículos y documentos en que son los cargadores de clase de Java, y cómo/* por qué * para escribir el suyo ... pero todos parecen estar asumiendo algunas cosas que no puedo encontrar de manera simple ¡Respuesta para!¿Cuándo participan los cargadores de clase Java?
Entiendo el trabajo del cargador de clases: leer bytecode y construir un objeto a partir de él. Cargadores de clases diferentes hacen esto de manera diferente, etc.
Pero que nunca se le código contra una API cargador de clases en mi propio código, y nunca tener que escribir una de la mía, estoy teniendo enormes dificultades para entender cuando un ClassLoader
' el propio código de s realmente dispara.
Por ejemplo:
public static void main(String[] args) {
Fizz fizz = new Fizz();
fuzz.buzz();
}
aquí, tenemos un objeto Fizz
. Antes de que se pueda crear una instancia de Fizz
, necesitamos un cargador de clases para iniciar y cargar Fizz.class
en su caché. ¿Dónde y cuándo sucede esto?!?! No está explícitamente en mi código, así que debe estar implícitamente en algún lugar del JRE ...?
tangencial a esa pregunta, si escribo mi propio cargador de clases, por ejemplo, WidgetClassLoader
y desea configurarlo para cargar o bien todas las clases de mi aplicación, o tal vez sólo mi Fizz.class
, ¿cómo puedo "ato" de este WidgetClassLoader
en mi aplicación para que sabe qué cargador de clases usar? ¿Necesitaría mi código llamar explícitamente a este cargador de clases o sería implícito como el primer ejemplo? ¡Gracias por adelantado!
Está en el JRE, por supuesto. Lea esto, y Google para la configuración del cargador de clases personalizado: http://www.javalobby.org/java/forums/t18345.html – duffymo
@duffymo - vea mi comentario bajo la respuesta de Andre - ¡Tengo la misma pregunta para usted! – IAmYourFaja
No veo la necesidad de escribir un cargador de clases propio. Ni una sola vez, en todo el tiempo que estuve escribiendo Java. Y eso es desde 1.0 en 1997. ¿Qué te hace pensar que lo necesitas? – duffymo