用户输入的Java Run方法

时间:2014-04-04 00:39:54

标签: java

我希望有一个文本字段并运行用户输入的任何内容。因此,如果用户输入, aPackage.AClass.aMethod(parms),它将在包,类和这些参数中运行该方法。这可能吗? 我想要这个的原因是我可以调试我的代码并将程序放入"开发人员模式"并能够执行任何命令。

2 个答案:

答案 0 :(得分:0)

如果您知道classname,methodname,输入params类型然后使用反射,则可以实现。这是一个相同的小代码片段:

            //load the AppTest at runtime
    Class cls = Class.forName("aPackage.AClass");
    Object obj = cls.newInstance();

    //call the printIt method
    Method method = cls.getDeclaredMethod("aMethod", noparams);
    method.invoke(obj, null);

答案 1 :(得分:0)

是的,有可能。使用Java Reflection API(tutorial on docs.oracle.com),您可以按名称访问类及其方法。如果您不知道参数类型的潜在问题是重载方法。请注意,让用户执行随机代码是一个潜在的安全问题。