我正在尝试像Java中的命令一样实现String:
public static void main(String[] args) {
String command = "System.out.println("hello word");";
...
}
我需要将命令String转换为命令行,以便在控制台中执行输出“hello word”。我想使用这项技术来改进代码:
SimpleDateFormat sdf = new SimpleDateFormat("MMMM");
String month = sdf.format(calIndex.getTime());
switch (month) {
case "January":
leaveDetailCLateLEarly.february += 10;
break; }
...
以上内容非常详细。我想写一些更短的东西:
String command = "leaveDetailCLateLEarly."+ month + "+= 10"
其中leaveDetailCLateLEarly是一个对象并且具有12个月的属性。 (即1月,2月等...)然后我有命令字符串:'leaveDetailCLateLEarly.month = 10',其中月份值可以改变(1月,2月,3月,......)。项目运行时,String将转换为命令行以实现所需的功能。
答案 0 :(得分:5)
这是我多年前使用Compiler API编写的库。 Essence JCF它编译并加载任何String作为类文件。 (包括嵌套类)而不触及磁盘。
您还可以使用Beanshell动态运行Java代码。许多Java调试器都使用它,但它不是Java的全功能版本。
另一种方法是使用groovy,它支持所有Java代码并动态运行。
这些方法都不是微不足道的,也没有广泛使用。我建议你重新考虑为什么你需要这样做并尝试不同的方法。
答案 1 :(得分:0)
我不确定你在问什么。如果用户输入字符串“command”,您是否希望显示“hello world”消息?如果是这样,试试这个:
Scanner scanner = new Scanner(System.in);
String input ="";
do{
System.out.println("Command?:");
input = scanner.nextLine();
while(!input.equals("command"));
System.out.println("Hello world!");