Cambio de Java ClassLoader

Tengo alguna claseA:

<code>public class A {
    public A(String str) {
        System.out.println("Create A instance: " + str);
    }

    public void methodA() {
        System.out.println("#methodA1()");
    }
}
</code>

Y mi implementación del cargador de clases:

<code>public class MyClassLoader extends ClassLoader {
    public MyClassLoader() {    
        super();
    }

    @Override
    public synchronized Class<?> loadClass(String name) 
            throws ClassNotFoundException {

        System.out.println("Load: " + name);

        return super.loadClass(name);
    }
}
</code>

Y ahora trato de cambiar el cargador de clases predeterminado en el hilo actual:

<code>import java.util.ArrayList;
import java.util.List;

public class ChangeLoaderTest {
    public static void main(String[] args) {
        // Save class loader so that we can restore later.
        ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();

        MyClassLoader newLoader = new MyClassLoader();
        try {
            // Set new classloader.
            Thread.currentThread().setContextClassLoader(newLoader);

            // My class.
            A a = new A("1");
            a.methodA();

            // Standard Java class.
            List<Integer> list = new ArrayList<Integer>();
            list.add(2);
            list.add(3);
        } finally {
            // Restore.
            Thread.currentThread().setContextClassLoader(oldLoader);
        }
    }
}
</code>

YChangeLoaderTest salida:

<code>Create A instance: 1
#methodA1()
</code>

Ninguno

<code>Load: ...
</code>

¿Por qué? Como puedo cambiarClassLoader en algún hilo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta