星期一, 九月 20, 2004

Java Groovy 1.0 beta 6避免GroovyClassloader不能GC Class的问题

Groovy 1.0 beta 6 GroovyclassLoader使用Dynamic ClassLoader技术,
不能回收解析脚本动态产生的Scriptxxxx class.

原因是Groovy MetaClass使用了 static HashMap 来cache生成的class.

解决办法,模拟groovy 自己产生一个GroovyObject Arrays.
然后,把动态生成的GroovyObject放入数组,只生成一次,以后直接从数组中载入Class对象实例。