在Java中如何在运行时更改方法名?

在Java中如何在运行时更改方法名?,java,reflection,Java,Reflection,我有下面的测试方法,它从excel表格中获取参数。假设我有5个测试用例,所以这个方法将执行5次。但是,当我执行第一个测试用例(TC01)时,test()方法名称应该在运行时根据test_TC01()、test_TC02()等测试脚本进行更改 请分享您的评论简而言之,您不能 您可以做的是创建一个新类(在运行时!),编译它并运行它 是的,我所说的是您编写代码来: 创建类(在临时文件中) 使用来编译该类 调用已编译类实例上的方法 祝你好运!我曾经使用过这段代码,它非常有趣,但除非你真的需要它,否则几乎

我有下面的测试方法,它从excel表格中获取参数。假设我有5个测试用例,所以这个方法将执行5次。但是,当我执行第一个测试用例(TC01)时,test()方法名称应该在运行时根据test_TC01()、test_TC02()等测试脚本进行更改

请分享您的评论

简而言之,您不能

您可以做的是创建一个新类(在运行时!),编译它并运行它

是的,我所说的是您编写代码来:

  • 创建类(在临时文件中)
  • 使用来编译该类
  • 调用已编译类实例上的方法
    祝你好运!我曾经使用过这段代码,它非常有趣,但除非你真的需要它,否则几乎总是过度使用

    你的问题必须反思吗?为什么不使用工厂模式?更改方法名称?这有什么用?听说过字符串连接吗?我想他是指方法签名中的varargs@Stultuske我正在从一个方法执行多个selenium测试脚本。现在,我希望跟踪每个方法的状态,以包括在报告中。所以我想根据参数或测试脚本动态更改方法名。@RahulKarankal one测试应该测试一件事。创建几个测试。
    @Test
    public void Test() throws Exception {
    
        ExcelUtils.setExcelFile(System.getProperty("user.dir") + "\\src\\data_engine\\DataEngine.xlsx");
        DOMConfigurator.configure("log4j.xml");
        String Path_OR = System.getProperty("user.dir") + "\\src\\config\\OR.properties";
        FileInputStream fs = new FileInputStream(Path_OR);
        OR = new Properties(System.getProperties());
        OR.load(fs);
    
        DriverScriptTest startEngine = new DriverScriptTest();
    
        startEngine.execute_TestCase();
    
    }