classreloadingtest.groovy
来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 44 行
GROOVY
44 行
package groovy.lang
class ClassReloadingTest extends GroovyTestCase {
public void testRealoding() {
def file = File.createTempFile("TestReload",".groovy", new File("target"))
file.deleteOnExit()
def className = file.name-".groovy"
def cl = new GroovyClassLoader(this.class.classLoader);
def currentDir = file.parentFile.absolutePath
cl.addClasspath(currentDir)
cl.shouldRecompile = true
try {
file.write """
class $className {
def hello = "hello"
}
"""
def groovyClass = cl.loadClass(className,true,false)
def object = groovyClass.newInstance()
assert "hello"== object.hello
sleep 1000
// change class
file.write """
class $className {
def hello = "goodbye"
}
"""
file.lastModified = System.currentTimeMillis()
// reload
groovyClass = cl.loadClass(className,true,false)
object = groovyClass.newInstance()
assert "goodbye" == object.hello
} finally {
file.delete()
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?