zoukankan      html  css  js  c++  java
  • JAVA中动态编译的简单使用

    一、引用库

    pom文件中申明如下:

        <dependencies>
            <!-- https://mvnrepository.com/artifact/junit/junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
         <!-- https://mvnrepository.com/artifact/com.github.henryhuang/dynamiccompiler -->
            <dependency>
                <groupId>com.github.henryhuang</groupId>
                <artifactId>dynamiccompiler</artifactId>
                <version>0.1.0</version>
            </dependency>
        </dependencies>

    二、测试代码

    import com.github.henryhuang.dynamiccompiler.ClassGenerator;
    import org.junit.Test;
    
    import java.lang.reflect.Method;
    
    public class HelloTest {
        @Test
        public void test() {
            ClassGenerator builder = new ClassGenerator(".");
            try {
                Class<?> testclass = builder.generate("TestClass", "" +
                        "public class TestClass{" +
                        "   public static String execute(String[] args){" +
                        "       System.out.println("Test!"); " +
                        "       return args[0];" +
                        "   }" +
                        "}");
                Method method = testclass.getMethod("execute", String[].class);
                for (int i = 0; i < 100; i++) {
                    String[] params = {"宋柱柱" + i, "def"};
                    Object result = method.invoke(null, (Object) params);
                    System.out.println("result:" + result);
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

    三、运行结果

  • 相关阅读:
    C#学习笔记
    Visual Studio 快捷键
    java 8 中lambda表达式学习
    Spfa算法
    dijkstra算法
    topSort
    并查集--学习详解
    trie树--详解
    POJ1988 并查集的使用
    Mybatis的一级缓存和二级缓存
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/8873513.html
Copyright © 2011-2022 走看看