【问题标题】:function that creates custom variables in java在java中创建自定义变量的函数
【发布时间】:2021-03-09 23:20:16
【问题描述】:

在 Python 中这很容易:

def function(variable_name,variable_value):
    exec(str(variable_name) + "=" + str(variable_value))

exec() 将字符串转换成代码运行;在这种情况下,它会创建一个变量。我正在 Java 中寻找类似的东西:

static void method (String variable_name; String variable_value){
     exec_eval_in_java("String " + variable_name + " = " + variable_value + ";");
}

【问题讨论】:

  • Java 没有 eval。 Java 中没有等价物。最接近的是字节码生成实用程序,例如asm
  • @ElliottFrisch 我该如何使用它?我是初学者
  • 100% 不适合初学者。因此评论的开头是:“Java 没有 eval。Java 中没有等价物。”
  • Python 中的坏主意,Java 中更糟糕的主意。无论您实际需要做什么,都不是这样做的。

标签: java string eval


【解决方案1】:

如果你编译和加载一个java类,你可以动态地做到这一点:

String className = "package.myClass";
String code = "package package;\n" + 
    "public class myClass{}\n"

等等,你可以这样写你的代码,然后:

Class class = CompilerUtils.CACHED_COMPILER.loadFromJava(className, code);
Runnable runnable= (Runnable) class.newInstance();
runnable.run();

您可以查看: How do you dynamically compile and load external java classes?Is there an equivalent to Python's exec() function in Java?

你也可以查看 git hub Java-Runtime-Compiler

【讨论】:

  • 你能提供一个提示/链接到提供CompilerUtils的库吗?
猜你喜欢
  • 1970-01-01
  • 2013-09-19
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多