[英]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.