美文网首页
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类

    预备工作我就不说明了,网上很多,也可以看这篇博客 Groovy入门 在resource文件夹下创建一个entiti...

  • Java 类加载器入门

    类加载器简介 类加载器是负责加载类的对象。 它负责在运行时将 Java 类动态加载到 JVM(Java 虚拟机)。...

  • 【Using English】57 Class Loaders

    original 1. 介绍类加载器 类加载器负责在运行时动态地加载Java类到Java虚拟机。当然,类加载器也是...

  • android基础_02类加载器

    参考文章 : 深入理解Java类加载器(ClassLoader) 一、动态代理关于类加载器 : 1.1 在看动态代...

  • Gradle 相关

    一、Groovy脚本 Groovy是一种动态语言,Groovy脚本基于Java且拓展了Java,都在Java虚拟机...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • android 动态加载技术demo

    1.引言 前面写了很多关于java类加载机制的笔记。今天又看了下android动态加载,发现和java加载类真是贴...

  • Java反射

    一. Class类 二. Java动态加载类 三. Java获取方法信息 四. Java方法反射的基本操作

  • JAVA-Reflect

    一、Class类的使用 二、Java动态加载类 三、Java获取方法信息 四、Java方法的反射

  • 面试必考之类的加载器

    类加载器简介 类加载器负责在运行时将Java class动态加载到JVM(Java虚拟机)。而且,它们是JRE(J...

网友评论

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

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