Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在Class.forName中使用动态值?_Java_Dynamic_Testng - Fatal编程技术网

Java 是否可以在Class.forName中使用动态值?

Java 是否可以在Class.forName中使用动态值?,java,dynamic,testng,Java,Dynamic,Testng,我有一个testNG框架,我被要求通过命令行使其可运行。我已经添加了执行测试的代码,但是部分命令行执行正在传入要执行的测试类。Java似乎不喜欢这样 我的代码: TestListenerAdapter tla = new TestListenerAdapter(); TestNG testng = new TestNG(); try { Class cl = Class.forName(myClass); testng.setTe

我有一个testNG框架,我被要求通过命令行使其可运行。我已经添加了执行测试的代码,但是部分命令行执行正在传入要执行的测试类。Java似乎不喜欢这样

我的代码:

    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng = new TestNG();

    try
    {
        Class cl = Class.forName(myClass);
        testng.setTestClasses(new Class[] { cl.class });
        testng.addListener(tla);
        testng.run();
    }
    catch (Exception ex)
    {
    ...
    }
变量myClass是传递到Main的参数之一

我收到未知类的cl.class代码错误

这样做的正确方式是什么

编辑:


实际构建项目时,返回的错误是错误:找不到符号类cl。

问题可能是您正在将cl.class放入类数组中。cl是一个类对象。试一试

testng.setTestClasses(new Class[] { cl });

您可以在此处阅读有关类的更多信息

问题可能是您正在将cl.Class放入类数组中。cl是一个类对象。试一试

testng.setTestClasses(new Class[] { cl });
您可以在此处阅读有关该课程的更多信息

将行更改为:

testng.setTestClassesnew类[]{cl}

语法X.class是从硬编码的类名中获取类对象。在这种情况下,您已经有了类实例,所以只需使用它。

将行更改为:

testng.setTestClassesnew类[]{cl}


语法X.class是从硬编码的类名中获取类对象。在本例中,您手头已经有了类实例,所以只需使用它。

是否要传递完全限定的路径名?i、 e.com.example.testNGapp.ClassToBeTestedI甚至无法编译代码。这不是运行时错误。@Jason myClass的类型是什么?它应该是一个字符串。您是否要传递完全限定的路径名?i、 e.com.example.testNGapp.ClassToBeTestedI甚至无法编译代码。这不是运行时错误。@Jason myClass的类型是什么?这应该是一个严重的问题谢谢,那是我的问题。谢谢,那是我的问题。