预备工作我就不说明了,网上很多,也可以看这篇博客 Groovy入门
在resource
文件夹下创建一个entities
文件夹,然后创建如下代码:
class HelloGroovy {
def sayHello(){
println "Hello World"
}
}
下面是启动类:
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception{
// 创建一个Groovy类的加载器
GroovyClassLoader loader = new GroovyClassLoader();
// 找到文件夹所在路径
URL resource = Main.class.getResource("/entities");
String path = resource.getPath();
// 获取该文件夹中所有的文件
File dir = new File(path);
File[] files = dir.listFiles();
// 将所有的文件遍历,执行他们的sayHello方法
for (File file : files) {
Class groovyClass = loader.parseClass(file);
GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
groovyObject.invokeMethod("sayHello", null);
}
}
}
类的动态加载可以实现程序规则动态变化
网友评论