- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用GroovyClassLoader
时,什么时候应该使用loadClass
,什么时候应该调用parseClass
?
如果我理解,第一次调用 loadClass()
将编译脚本,后续调用将使用缓存的类文件而不是重新编译它。
但是 parseClass
呢?
最佳答案
documentation for parseClass
表明它接受一个文件或一个包含 Groovy 代码的字符串,并将其转换为一个类。
如果函数传递给一个文件,那么 GroovyClassLoader 将缓存这个生成的类,但如果传递给一个字符串,它会 will not cache it .
函数loadClass
(来自the documentation)说:
loads a class from a file or a parent classloader.
它的基本作用是查找类加载器中已经存在的类,如果找不到,则在磁盘上查找具有匹配名称的脚本文件。
一旦这个类被加载,它就会被缓存。下次您调用 loadClass
时,它将使用这个缓存的类,除非您为 preferClassOverScript
传递了 false
。如果您传递 false
,它将尝试再次在磁盘上定位脚本,recompile the class如有必要。
关于groovy - parseClass 加载类 groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7848082/
当使用GroovyClassLoader时,什么时候应该使用loadClass,什么时候应该调用parseClass? 如果我理解,第一次调用 loadClass() 将编译脚本,后续调用将使用缓存的
我正在尝试将 Groovy 脚本作为类动态加载,但即使脚本的代码未编译,也会创建类对象。 例如,我的用于加载 Groovy 脚本的 Groovy 代码的简化版本如下: GroovyCodeSource
我是一名优秀的程序员,十分优秀!