簡體   English   中英

是否可以在Class.forName中使用動態值?

[英]Is it possible to use a dynamic value in Class.forName?

我有一個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放入Class數組中。 cl是一個類對象。 嘗試

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

您可以在http://docs.oracle.com/javase/tutorial/reflect/class/classNew.html上閱讀有關Class類的更多信息。

將行更改為:

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

語法X.class是從硬編碼的類名獲取Class對象。 在這種情況下,您已經擁有了Class實例,因此只需使用它即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM