应该不是同一ClassLoader加载的,就是 (Counter) 和 tmp.loadClass("....Counter") 这两个。所以说一般应该先给父类加载器加载,找不到再自己加载

解决方案 »

  1.   

    是的,是由于不同的ClassLoader而导致异常,但是为什么强制转换 ICounter 接口,就不会报异常呢?这个该怎么解释呢~~~
      

  2.   

    是的,是由于不同的ClassLoader而导致异常,但是为什么强制转换 ICounter 接口,就不会报异常呢?这个该怎么解释呢~~~在这里只有tmp.loadClass的返回的这一个Counter是自定义类加载器加载的,其他的Counter和其他所有的类都是使用系统默认的类加载器
      

  3.   

    是的,是由于不同的ClassLoader而导致异常,但是为什么强制转换 ICounter 接口,就不会报异常呢?这个该怎么解释呢~~~在这里只有tmp.loadClass的返回的这一个Counter是自定义类加载器加载的,其他的Counter和其他所有的类都是使用系统默认的类加载器
    谢谢你这么支持,你所说的“其他的Counter是使用系统默认的类加载器”,对,我这么想,但是我又不理解:什么叫其他Counter,我的Counter都是由工厂类CounterFactory生成的。所以CounterFactory生产的Counter是由URLClassLoader加载,我理解。但又哪来了个Counter需要系统默认加载器去加载。There must be something I am missing o(╯□╰)o