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

标签 java reflection

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

@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();

}

请分享您的意见

最佳答案

简而言之,你不能。

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

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

  1. 创建类(在临时文件中)
  2. 使用Java Compiler API编译类。
  3. 调用已编译类实例的方法。

祝你好运!我已经使用过这段代码,它非常有趣,但几乎总是矫枉过正,除非你真的需要它。

关于java - 如何在运行时在 Java 中更改方法名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36127935/

相关文章:

.net - 如何在.net的程序集中查找特定接口(interface)的所有类

java - 如何从类名字符串中获取单例实例

java - 在二维字符串数组java中搜索字符串

java - 在 POST 中以 base64 形式发送 pdf 文件

java - 发现是否在 try-finally block 的 finally 部分抛出异常

java - 避免图像的透明像素

Java 反射 - 找不到 Android 类

java - 为什么Object实际上可以是Object[]?

java - 使用 Maven 运行 spock 单元测试

Java 8 : create new instance of class with generics using reflection