我正在尝试像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将转换为命令行以实现所需的功能.
这是我多年前使用Compiler API编写的一个库.Essence JCF 它将任何String编译并加载为类文件.(包括嵌套类)而不触及磁盘.
您还可以使用Beanshell动态运行Java代码.许多Java调试器都使用它,但它不是Java的全功能版本.
另一种方法是使用groovy,它支持所有Java代码并动态运行.
这些方法都不是微不足道的,也没有广泛使用.我建议你重新考虑为什么你需要这样做并尝试不同的方法.
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |