Java运行时在范围内编译

时间:2016-12-18 13:39:43

标签: java compilation runtime classloader abstract-syntax-tree

是否可以在运行时重新编译类中的java代码?

示例:

package com.main;

public class Main {

public static int a = 5;
public static int b = 10;

public static void main(String[] args) {
    int c = func(a, b);

    compile("int func(int a, int b) { return a * b; }");

    int d = func(a, b); 
}

static int func(int a, int b) {
    return a + b;
}
}

因此在本例中,编译函数将覆盖现有方法。

我的程序会接收uni给学生的分数/分数,因为大多数科目都有不同的方法来计算总得分,用户应该可以单独更改这些分数。

是否可以在不使用AST(抽象语法树)或必须编译必须继承某些方法的新类文件的情况下执行此类操作?

0 个答案:

没有答案