parseClass loadClass groovy

时间:2011-10-21 10:23:31

标签: groovy

使用GroovyClassLoader时,我应该何时使用loadClass,何时应致电parseClass

如果我理解,第一次调用loadClass()将编译脚本,后续调用将使用缓存的类文件而不是重新编译它。

但那么parseClass呢?

1 个答案:

答案 0 :(得分:4)

documentation for parseClass表明它接受包含Groovy代码的File或String,并将其转换为类。

如果函数传递给File,那么GroovyClassLoader将缓存这个生成的类,但是如果传递了一个String,它就是will not cache it

函数loadClass(来自the documentation)说:

  

从文件或父类加载器加载一个类。

它的基本功能是查找classLoader中已存在的类,如果找不到它,请在磁盘上查找匹配名称的脚本文件。

加载此类后,它将被缓存。下次您致电loadClass时,它将使用此缓存的类,除非您为false传递preferClassOverScript。如果您通过false,则会尝试再次在磁盘上找到该脚本,recompile the class如有必要。