美文网首页
java动态加载groovy类

java动态加载groovy类

作者: small瓜瓜 | 来源:发表于2019-07-27 22:22 被阅读0次

    预备工作我就不说明了,网上很多,也可以看这篇博客 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);
            }
        }
    }
    

    类的动态加载可以实现程序规则动态变化

    相关文章

      网友评论

          本文标题:java动态加载groovy类

          本文链接:https://www.haomeiwen.com/subject/grsyrctx.html