板桥或其他兄弟,请帮帮忙。
我现在要实现通过定制的ClassLoader来实现类的动态重新加载,具体的说,指间隔检查指定的类(不在系统默认装载器能够装载的路径下),如果发现类被修改过,则用自己写的classloader重新装载该类
现在遇到如下问题:我用自己写的classloader 装载该类,可是装载后我不能像使用普通的类那样使用该类,例如,通常我们这样使用一个类:Hello hello = new Hello();然后我们就可以通过hello来调用各种方法了,我是这样来重新装载一个类的:Class cl = new MyClassLoader().loadClass("OneClass.class");这时如果我用下列转换:OneClass oc = (OneClass)cl;,系统就抛出一个类型转换异常。这时只能通过反射机制来使用该类,我现在想知道如何能够想使用普通类那样使用重新装载的类cl。另外,由于我要不断的检查不断的重新加载类,这就导致一个问题:每次加载都是用MyClassLoader进行重加载,第一次没问题,第二次就会抛出类已经加载的异常,这是因为第一次MyClassLoader已经加载过这个类了,所以再加载的时候就跑出异常。
如果我写得不明白,或者需要从源码获得更多的判断信息,请告诉我。