在我的主模块中,我有一些使用forName()的代码。在JUnit测试中,我创建了一个哑类,试图从主模块中检索它。

public class TestClass {
    public static class DummyClass implements OtherClass { ... }

@Test
void testCase() {
    ParserHandler parserHandler = new ParserHandler();
    String fullClassName = DummyEntity.class.getCanonicalName();

    // fullClassName is used in the following method which uses forName()
    parserHandler.run(fullClassName);
}


每当我尝试这样做时,我都会得到:

java.lang.ClassNotFoundException: com.x.y.TestClass.DummyEntity


我该如何解决?

最佳答案

规范名称非常适合用于良好的格式设置,但这不是您想要的。您应该使用Class#getName代替:

String fullClassName = DummyEntity.class.getName();

关于java - 使用forName通过main在测试模块中检索类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52648936/

10-10 06:41