像java中的命令一样实现String

Duy*_*yen 0 java string

我正在尝试像Java中的命令一样实现String:

public static void main(String[] args) {
   String command = "System.out.println("hello word");";
   ...
}
Run Code Online (Sandbox Code Playgroud)

我需要将命令String转换为命令行,以便在控制台中执行输出"hello word".我想使用这项技术来改进代码:

SimpleDateFormat sdf = new SimpleDateFormat("MMMM");
String month = sdf.format(calIndex.getTime()); 
switch (month) { 
   case "January": 
       leaveDetailCLateLEarly.february += 10;
       break; }
...
Run Code Online (Sandbox Code Playgroud)

以上是相当冗长的.我想写一些更短的东西:

String command = "leaveDetailCLateLEarly."+ month + "+= 10"
Run Code Online (Sandbox Code Playgroud)

其中leaveDetailCLateLEarly是一个对象并具有12个月的属性.(即1月,2月等...)然后我有命令字符串:'leaveDetailCLateLEarly.month = 10',其中月份值可以改变(1月,2月,3月,......).项目运行时,String将转换为命令行以实现所需的功能.

Pet*_*rey 5

这是我多年前使用Compiler API编写的一个库.Essence JCF 它将任何String编译并加载为类文件.(包括嵌套类)而不触及磁盘.

您还可以使用Beanshell动态运行Java代码.许多Java调试器都使用它,但它不是Java的全功能版本.

另一种方法是使用groovy,它支持所有Java代码并动态运行.

这些方法都不是微不足道的,也没有广泛使用.我建议你重新考虑为什么你需要这样做并尝试不同的方法.