parseClass loadClass groovy

ani*_*ish 3 groovy

什么时候用GroovyClassLoader,什么时候用loadClass,什么时候调用parseClass

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

但那parseClass又如何呢?

tim*_*tes 5

文档parseClass显示它需要一个包含 Groovy 代码的文件或字符串,并将其转换为一个类。

如果函数传入一个 File ,那么 GroovyClassLoader 会缓存这个生成的类,但是如果传入一个 String ,它不会缓存它

该功能loadClass(来自文档)说:

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

它的主要作用是查找 classLoader 中已经存在的类,如果找不到,则在磁盘上查找具有匹配名称的脚本文件。

一旦这个类被加载,它就会被缓存。你叫下一次loadClass,它会使用这个缓存类,除非你通过falsepreferClassOverScript。如果通过false,它将尝试再次在磁盘上定位脚本,如有必要,重新编译该类